با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن . و کاربرانی که دوره کامل آموزش ASP.NET MVC ، را دنبال می کنند. ویژگی TempData در ASP.NET MVC به عنوان ظرفی برای نگهداری موقت داده ها در درخواست بعدی مورد استفاده قرار می گیرد. ویژگی TempDataدر ASP.NET ، پس از اتمام درخواست بعدی پاکسازی خواهد شد. برای آشنایی بیشتر با ویژگی TempData در ASP.NET MVC و چگونگی استفاده از آن، در ادامه ی مباحث فوق با ما همراه باشید.
ویژگی TempData در ASP.NET MVC زمانی مفید خواهد بود که شما بخواهید اطلاعاتی را از یک متد اجرایی به متد اجرایی دیگر از یک یا چند کنترلر ، انتقال دهید.
این ویژگی از دایرکتوری TempDataDictionary گرفته شده است.
شما می توانید یک کلید key-value در ویژگی TempData مانند مثال زیر اضافه کنید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | public class HomeController : Controller { // GET: Student public HomeController() { } public ActionResult Index() { TempData["name"] = "Test data"; TempData["age"] = 30; return View(); } public ActionResult About() { string userName; int userAge; if(TempData.ContainsKey("name")) userName = TempData["name"].ToString(); if(TempData.ContainsKey("age")) userAge = int.Parse(TempData["age"].ToString()); // do something with userName or userAge here return View(); } } |
در مثال فوق، ما داده ها را در TempData اضافه کرده ایم و به همان داده ها با استفاده از یک کلید در دیگر متدهای اجرایی دسترسی داریم.
توجه کنید که ما مقادیر را در نوع مناسب تبدیل می کنیم.
شکل زیر یک شمای کلی از عملکرد TempData را نشان می دهد:
همانطور که در مثال بالا می بینید، در اولین درخواست، داده های تست را در TempData اضافه می کنیم.
در درخواست دوم، به داده های تست از TempData که در اولین درخواست ذخیره می شود، دسترسی می یابیم.
شما نمی توانید داده های مشابه را در درخواست سوم دریافت کنید زیرا TempData بعد از درخواست دوم پاک خواهد شد.
متد TempData.Keep()
را برای حفظ مقادیر TempData در یک درخواست سوم متوالی فراخوانی کنید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | public class HomeController : Controller { public HomeController() { } public ActionResult Index() { TempData["myData"] = "Test data"; return View(); } public ActionResult About() { string data; if(TempData["myData"] != null) data = TempData["myData"] as string; TempData.Keep(); return View(); } public ActionResult Contact() { string data; if(TempData["myData"] != null) data = TempData["myData"] as string; return View(); } } |
نکات زیر را به خاطر بسپارید:
۱- از TempData می توان برای ذخیره ی داده ها بین درخواست های متوالی استفاده کرد، مقدار TempData در درخواست دوم نیز حفط می شود.
۲- TempData یک نوع TempDataDictionary است.
۳- TempData داخلی از Session برای ذخیره ی داده ها استفاده می کند.بنابراین می توان آن را یک Session کوتاه مدت در نظر گرفت.
۴- نوع داده ی TempData باید قبل از استفاده مشخص شود، برای جلوگیری از خطای زمان اجرا، مقادیر null را بررسی کنید.
۵- TempData فقط می تواند برای ذخیره سازی پیام های یک زمان، مانند پیام های خطا و اعتبارسنجی استفاده شود.
۶- با فراخوانی متد TempData.Keep()
می توانید تمام مقادیر TempData را در درخواست سوم نیز حفظ کرد.
در مباحثی که در طول این بخش ارائه شد ما به شما چگونگی استفاده از ویژگی TempData در ASP.NET MVC برای ذخیره سازی موقت داده ها در طول در خواست های متوالی را آموزش دادیم. در مباحث بخش بعدی نیز ما به آموزش فیلترهای ASP.NET MVC خواهیم پرداخت.
omid
خیلی ممنون بابت آموزش
واقعا گیر کرده بودم ، کارم راه افتاد
ممنون