کار با ViewBag در ASP.NET Core MVC
در ASP.NET Core MVC روش های مختلفی برای ارسال اطلاعات از controller ها بهview وجود دارد. یکی از این روش ها استفاده از ViewBag است.
ViewBag یک پراپرتی داینامیک (Dynamic) از کلاس پایه Controller است و در هر کلاسی که از کلاس Controller ارث بری می کند می توان از این Property استفاده کرد. در ASP.NET Core تمامی کلاس های Controller از کلاس پایه Controller ارث بری می کنند، بنابراین شما می توانید از ViewBag به منظور انتقال اطلاعات از Controller به View استفاده کنید. منظور از داینامیک بودن پراپرتی ViewBag این است که بعد از تعریف هر پراپرتی از ViewBag، خود به خود این پراپرتی به کلاس اصافه می شود. ما با استفاده از این روش می توانیم اطلاعات را در قالب یک شیء به View ارسال کنیم و در حقیقت ما هیچگونه Model اضافی ای به View نخواهیم داد.
نحوه تعریف ViewBag در Action Method
برای تعریف یک ViewBag از کلمه کلیدی ViewBag استفاده کرده و پس از آن یک علامت . قرار داده و پس از آن نامی را برای ViewBag خود انتخاب می کنیم. برای انتساب مقداری به ViewBag بعد از علامت مساوی مقدار موردنظر را وارد می کنیم.
پس از آنکه اطلاعاتی را توسط ViewBag در Controller ارسال کردیم می توان به راحتی و در هر قسمت از View مانند زیر اطلاعات را دریافت کرد:
ViewBag.Name@
نکته ای که باید درنظر داشته باشید این است که مقدار درون ViewBag فقط در طول Request جاری اعتبار دارد و در صورت Redirect شدن مقدار آن null خواهد شد.