មាតិកា
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