PDA

View Full Version : سوال: سوال در مورد viewbag



سیروس مقصودی
یک شنبه 15 مرداد 1396, 07:49 صبح
با سلام
در داخل يك كنترل مثلا Home اگر يك ViewBag تعريف كنيم آيا اين ViewBag در داخل همان كنترلر Home در تمامي متدها ميتوان از آن استفاده كرد ؟ يعني در متد a و متد B مينوان از مقدار آن ViewBag استفاده نمود؟ اگر نه براي اينكه متغييري تعريف كرد كه در داخل يك كنترلر و در تمامي متدها از آن استفاده كرد چه كاري بايد انجام داد ۀ

Moien Tajik
یک شنبه 15 مرداد 1396, 09:39 صبح
از ViewBag فقط میتونید داخل اکشن و ویو اون اکشن استفاده کنید و قابل استفاده بین اکشن های دیگه نیست .

برای استفاده از یک متغییر بین چند اکشن 2 راه وجود داره :
1- راهی که داخل AccountController پیشفرض پروژه های Individual User Accounts برای جا به جایی ReturnURL استفاده شده ( پاس دادن مقدار متغییر به ویو ها از طریق ViewBag و Post کردن اون ها از ویو به اکشن دوم )
2- راه ساده تر استفاده از Tempdata هستش که از Session ها برای نگهداری مقادیر استفاده میکنه : http://www.tutorialsteacher.com/mvc/tempdata-in-asp.net-mvc

Merlin_14
سه شنبه 28 شهریور 1396, 20:22 عصر
سلام شما نمیتونید اینکارو بکنید هر ViewBag که در داخل یک متد(اکشن) استفاده میشه فقط میتونه در داخل View اون اکشن استفاده بشه.
برای اینکار شما میتونید از session ها ویا cookie ها استفاده کنید.

hakim22
پنج شنبه 30 شهریور 1396, 12:59 عصر
بله شما می توانید از ViewBag در بین تمام متدهای یک کنترلر استفاده کنید. ViewBag و ViewData هر دو یک به یک بخش از حافضه اشاره می کنند و یک مقدار دارند. فرقش اینه که ViewBag یک متغیر از نوع dynamic هست ولی ViewData که لیست Key/Value از نوع string هست. در پشت کار این دو متد به یک لیست یکسان وصل میشوند. در واقع ViewBag تلاشی برای ساده تر کردن کار با ViewData هست.

مقداری که فقط بین یک اکشن و ویوی خودش کار میکنه TempData هست. مقادیر درون TempData بعد از ارسال Response به کلاینت پاک میشوند.

noarous
یک شنبه 03 دی 1396, 11:49 صبح
میشه استفاده کرد
تازه میتونید دستوراتتونو توی کنترلر بنویسید و viewbag خودتونو به صورتی که دوست دارید تعریف کنید تا قالب خروجی ای که میخاید رو بهتون بده
مثلا یه متغییر بزار و استایل ورودی زمان رو بهش بده و بزار توی viewbag تا با همون فرمت بهت بده
موفق باشید