سبد خرید 0

وبلاگ

انتقال اطلاعات در ASP.NET MVC

ASP.NET MVC سه گزینه برای انتقال اطلاعات از controller به view   توصیه میکند که شامل : ViewBag,ViewData,TempData می باشد . در این مقاله به نحوه استفاده و معرفی هر کدام از این سه مورد خواهیم پرداخت .

در بخش اول این مقاله به ViewBag خواهیم پرداخت

viewBag:

 با استفاده از ViewBag می توانید اطلاعاتی را از Controller به یک view یی مشخص ارسال کنید . viewBag یک dynamic type می باشد این به این معناست که شما می توانید هر تعداد Property که مد نظر دارید ایجاد و مقداری را به آن نسبت دهید و در view مورد نظر این اطلاعات را بخوانید. برای استفاده از viewBag در view نیازی به Cast کردن آن نیست (در ادامه توضیح داده خواهد شد)

فرض کنید در اکشن Index مقدار تاریخ جاری را به view ارسال و در View آن را به کاربر نمایش دهیم .

ابتدا یک Property دلخواه را به viewBag اضافه میکنیم با مقدار ساعت جاری . می توانید از هر اسم دلخواهی استفاده کنید :

و در view برای نمایش مقدار CurrentDate به صورت زیر عمل خواهیم کرد :

قصد داریم عنوان view را هم توسط یک viewBag دریافت و نمایش دهیم برای اینکار در اکشن Index یک Property دلخواه دیگر به VideBag اضافه و عنوان مورد نظر را در آن قرار میدهیم .اکشن Index را به صورت زیر تغییر می دهیم :

و در view :

نکاتی در مورد ViewBag :

– مدت اعتبار مقدار  هر viewBag فقط در درخواست جاری می باشد ، یعنی با رفتن به یک view دیگر مقدار موجود در viewBag  از بین می رود و در صورتی که بخواهید سعی بر استفاده از ViewBag داشته باشید مقدار null به دست می آورید .

– Intellisense  در اختیار ندارید .

– برای استفاده از مقادیر آن نیاز به cast کردن آن نیست . در توضیح viewData متوجه این موضوع خواهید شد .

– viewBag کلا با viewState متفاوت می باشد . Viewstate در ASP.NET MVC کاملا حذف شده است .

– ViewBag  یک طرفه می باشد و  همیشه در کنترلر مقدار دهی می شود  به این معنا که شما هرگز نمی توانید در view مقداری را به آن نسبت دهید .دستور زیر مقدار رشته hozhan را با مقدار ViewBag به صورت یک رشته بهم پیوسته نمایش میدهد .


لازم به ذکر است جدا از این سه روش view های strongly type و view های untyped هم وجود دارند که می توان از اطلاعاتی که در اکشن به view پاس داده می شود استفاده کرد .

اشتراک گذاری:

مطالب زیر را حتما مطالعه کنید

دیدگاهتان را بنویسید

keyboard_arrow_up