Categories
ASP.net

ការប្រើប្រាស់ ViewBag, ViewData, TempDataក្នុង ASP.NET MVC

មាតិកា

I.   សេចក្តីផ្តើម

II.  ការប្រើប្រាស់ ViewBag

III. ការប្រើប្រាស់ ViewData

IV. ការប្រើប្រាស់ TempData

V.  ភាពខុសគ្នារវាង ViewData, ViewBag, និង TempData

I.          សេចក្តីផ្តើម

ViewBag, ViewData និង TempData គឺជា Objects ដែលមាននៅក្នុង ASP.NET MVC ហើយ object ទាំងនេះត្រូវបានប្រើដើម្បីបោះទិន្នន័យនៅក្នុង scenarios ផ្សេងៗគ្នា។ ខាងក្រោមនេះគឺជា Scenarios ដែលយើងអាចយក object ទាំងនោះមកប្រើប្រាស់ដូចខាងក្រោម៖

  • បោះទិន្នន័យចេញពី Controller ទៅកាន់ View
  • បោះទិន្នន័យចេញពី action មួយទៅកាន់ action មួយផ្សេងទៀតដែលស្ថិតនៅក្នុង controller តែមួយ
  • បោះទិន្នន័យរវាង Controllers ទៅកាន់ Controller
  • បោះទិន្នន័យតាមរយៈការ requests បន្តបន្ទាប់គ្នា

II.        ការប្រើប្រាស់ ViewBag

ViewBag គឺជា dynamic object ដើម្បីធ្វើការ pass ទិន្នន័យ (data) ចេញពី Controller ទៅកាន់ View។ វានឹង pass ទិន្នន័យ (data) ជា property របស់ object ViewBag។ ហើយយើងមិនត្រូវការធ្វើការ convert ឬ typecast ដើម្បី read ទិន្នន័យ (data) ឬក៏ សម្រាប់ null checking ឡើយ។ Scope របស់ ViewBag គឺ ត្រូវបានប្រើអនុញ្ញាតតែក្នុង current request ហើយនិងតម្លៃ (value) របស់ ViewBag នឹងប្រែក្លាយជា null ខណៈពេលដែល redirecting។

ឧទាហរណ៍៖

  • បើក HomeController.cs
  • រួចធ្វើការសរសេរកូដខាងក្រោម
  • ចូលទៅកាន់ Views
  • រួចចូលទៅក្នុង Home
  • បើក Index.cshtml

លទ្ធផល

III.          ការប្រើប្រាស់ ViewData

ViewData គឺជា dictionary object ដើម្បីធ្វើការបោះទិន្នន័យ (data) ចេញពី Controller ទៅកាន់ View ដែល data ត្រូវបាន pass ក្នុងទម្រង់ជា key-value pair។ Scope របស់ ViewData គឺស្រដៀងទៅនឹង ViewBag ហើយវា ត្រូវបានតឹងតែង (restricted) ទៅលើ current request និង តម្លៃ (value) នៃ ViewData នឹងក្លាយទៅជា null ខណៈពេលដែល redirecting។

ឧទាហរណ៍៖

  • បើក HomeController.cs
  • រួចធ្វើការសរសេរកូដខាងក្រោម
  • ចូលទៅកាន់ Views
  • រួចចូលទៅក្នុង Home
  • បើក Index.cshtml

IV.          ការប្រើប្រាស់ TempData

  • TempData គឺជា dictionary object ដើម្បី pass data ចេញពី action មួយទៅ action មួយទៀត ស្ថិតក្នុង Controller តែមួយ ឬក៏ controllers ផ្សេងគ្នា។ ជាធម្មតា TempData object នឹងត្រូវបានគេ store នៅក្នុង session object។ Scope របស់ TempData គឺមានកម្រិត (limit) ទៅលើ next request ហើយបើសិនជាយើងចង់ប្រើប្រាស់ TempData អោយបានយូរជាងនេះ គឺយើងប្រើប្រាស់ object keep និង peek។

ឧទាហរណ៍៖

  • បើក HomeController.cs
  • រួចធ្វើការសរសេរកូដខាងក្រោម
  • ចូលទៅកាន់ Views
  • រួចចូលទៅក្នុង Home
  • បើក Index.cshtml

V.          ភាពខុសគ្នារវាង ViewData, ViewBag, និង TempData

By sysomeho

Ho Sysome obtains B.S. degree in Computer Science from Phnom Penh Internation University (PPIU) in 2013 and currently studying Master of Science in IT (MSIT) at Asia Euro University (AEU). He worked as an IT Officer at Microfinance Institute and Bank in Phnom Penh. He is familar in programming language such as VB.NET, Java (Java2EE, Spring), Codeigniter, Laravel, mysql, sql server and so on. He enjoys sharing knowledges, learns from other, and develop himself.
Find him on Facebook: Spy Ro, Linkedin: Sysome HO.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.