دسته بندی ها
14:41 1398/10/04

استفاده از ViewBag قبل از دستور Redirect در Asp.net core

مشخصات سوال کننده :
کاربر : pedram_khan     امتیاز کاربر : 277     رتبه کاربر : 6
دسته بندی : Asp.net Core

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 2438
پاسخ دهنده : saedbfd 20:24 1398/10/04

کاربرد ViewBag

از ViewBag برای انتقال اطلاعات از کنترلر به View استفاده می شود و نکته اینجاست که ViewBag ها فقط در همان اکشن یا در همان Request جاری فعال هستند و در صورتی که اطلاعات درون ViewBag از یک اکشن به اکشن دیگری منتقل شود مقدار آن هم null می شود. در این زمینه توصیه می کنم این مقاله که آموزش ViewBag و Viewdata هست رو مطالعه بفرمایید.

 

در سوال شما با توجه به اینکه شما از دستور Redirect استفاده می کنید پس عملا در حال انتقال از یک اکشن متد به اکشن متد دیگه ای هستید. پس طبیعتا مقدار viewbag طبق اصول null می شود.

 

استفاده از TempDate

در این حالت شما باید از TempData استفاده کنید. برای این منظور به کد زیر دقت کنید

TempData["msg"] = "value";
return Redirect("CourseDetails");

 

در قطعه کد بالا مقدار در TempData با کلید msg نگهداری می شود. حالا برای دریافت این مقدار در اکشن متد دیگر میتونید به صورت زیر عمل کنید

 

   ViewBag.msglogin = TempData["msg"];
   return View(model);

 

به همین راحتی میتونید مقدار TempData رو در اکشن متد دیگه درون یک ViewBag نگهداری کنید و از مقدار ViewBag در ویو استفاده کنید. این لینک رو هم مطالعه بفرمایید

به این پاسخ امتیاز بدهید    0
امتیاز: 1654 رتبه: 1
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود