• آموزش یک پروژه ASP.NET MVC 5 از ابتدا تا انتها – سیستم ویدئو کلوپ – بخش دهم
آموزش یک پروژه ASP.NET MVC 5 از ابتدا تا انتها – سیستم ویدئو کلوپ – بخش دهم
1395/03/23 - 13:24:18 // MVC 5 & 6 // 3 نظر // 4274 بازدید

در این بخش به بررسی چگونگی انتقال Data بین Action و View خواهیم پرداخت . در قسمتهای قبلی یک Action Method ایجاد کردیم که یک Movie Name را در View نمایش میداد. برای یاد آوری به شکل زیر دقت کنید.

بسمه تعالی

آموزش یک پروژه ASP.NET MVC 5 از ابتدا تا انتها سیستم ویدئو کلوپ بخش دهم

در این بخش به بررسی چگونگی انتقال Data بین Action و View خواهیم پرداخت . در قسمتهای قبلی یک Action Method ایجاد کردیم که یک Movie Name را در View نمایش میداد. برای یاد آوری به شکل زیر دقت کنید.

در این Action در عمل Data توسط یک پارامتر مختص به خروجی View به سطح UI پاس داده میشود.

روشهای دیگری هم برای ارسال دیتا از Action به View وجود دارد که بد نیست در این مبحث آنها را هم بررسی کنیم.

روش اول استفاده از ViewDate میباشد. هر Controller یک Property به نام ViewData دارد. که به آن ViewData Dictionary هم گفته میشود.خوب تا همینجا ببینیم چگونه میتوان دیتا را درون ViewData در سطح Action ذخیره نمود.

خوب در تصویر بالا هنوز یک ایراد داریم و آن هم این است که دیگر Movie به عنوان آرگومان View باید حذف شود. پس وضعیت باید به شکل زیر در بیاید.

خوب حالا باید وارد View مختص این Action شده و تغییرات لازمه را ایجاد نماییم. خوب در این View ما از Model Property استفاده کرده بودیم ، ولی الان باید از ViewData استفاده کنیم. وضعیت جدید به شکل زیر خواهد بود.

صبر کنید ، هنوز کار تمام نیست . من به Name Property از مجموعه Movie نیاز دارم و ظاهرن برای سطح View این Property شناخته شده نیست . حال پای Casting به میان می آید . برای حل این مشکل به یک روش بسیار بد مشابه زیر وجود دارد.

روش بالا افتضاح است . یک دنیا پرانتز و در کل هم یک Casting به بدترین و زشت ترین شکل ممکنه چه در زمینه شکل و ظاهر کد و چه در مفهوم. مثلن فرض کنید نام متغیر درون Action را عوض کنیم، هیچ گونه هوشمندی وجود ندارد و باید خودمان حواسمان باشد تا همه نامها را تغییر دهیم.

باید دید روش دیگر چیست ؟. روش دیگر ، ViewBag است . به این روش دقت کنید.

خوب آیا این روش دیگر حل کننده مشکل و ایده آل است ؟ . خیر این هم باز همه مشکلات ViewData را دارد. روش بهینه همان کاری بود که با پاس دادن یک بسته Data به عنوان ورودی View در زمان Return انجام میشد .

پس به همان روش اولی برگشتیم.

این بخش در عمل یک جور هشدار بود تا بدانید روش بهینه چیست و ضمنن حالا ذهن شما اندکی آماده تر شده تا بتوانید در بخش بخش بعدی به مفهوم مهمی به نام ViewModel توجه کنید .

دانلود سورس پروژه

علی کلاهدوزان
معرفی نویسنده : علی کلاهدوزان

سلام بر دوستان ،
شاید رایج است به عنوان پروفایل کاربر ، چند خطی راجع به خودم بنویسم ، ولی وضعیت کاری و سوابق من با یک جستجوی ساده در گوگل مشخص خواهد شد ، لذا سرتان را با مطالب بی مورد به درد نیاورم بهتر است . اگر نکته خاصی لازم بود بدانید در قسمت "ایلیا سافت در یک نگاه" به احتمال زیاد یافت خواهد شد . جزئیات بیشتر را سوال کنید ، آدرس ایمیل Ali@Kolahdoozan.com همیشه جوابگوی شماست .امیدوارم از مطالب سایت استفاده کرده باشید . شاد و پیروز باشید .

امتیاز به مطلب
           
نظرات کاربران
  • ناشناس
    1395/03/27 - 14:47:41

    0
    0
    خیلی خوبه.ادامه بدین لطفا.
  • Joonior
    1395/04/12 - 01:18:49

    1
    0
    من متن ها و آموزش های زیادی رو به زبان پارسی خوندم هیچ کدم به اندازی این آموزش ها برام جذاب نیستن :) خیلی خوب راه های خوب و بد رو تو ذهن خاننده تمییز میدی مهندس جان
    ممنون خدا خیرت :)


    --
    چه فایده ؟. لنگ 2 میلیاردیم که جور نمیشه .
  • Joonior
    1395/04/12 - 02:26:41

    1
    0
    همه چی رقم نیس مهندس :)) لنگ دومیلیاردی رو اونایی که خوب بلدن بدزدن و آب و از اب تکون نخوره دارن :) مهم وجودباارزش اساتیدی مث شماست که داره دست هم نوعشو میگیره و اون ماهیگیری رو یاد میده ... این مهمه خسته نباشی مهندس:)
ارسال نظر