• ASP.NET Core 1 – قسمت 30
ASP.NET Core 1 – قسمت 30
1395/02/07 - 12:57:37 // MVC 5 & 6 // 0 نظر // 306 بازدید

علاوه بر Viewstart یک ViewImports فایل هم در این ورژن ASP.NET MVC بوجود آمده است و در هنگام Render شدن یک View ، MVC در صورت وجود این فایل ، از آن هم استفاده خواهد نمود.

بسمه تعالی

ASP.NET Core 1 قسمت 30

علاوه بر Viewstart یک ViewImports فایل هم در این ورژن ASP.NET MVC بوجود آمده است و در هنگام Render شدن یک View ، MVC در صورت وجود این فایل ، از آن هم استفاده خواهد نمود. در ورژن قبلی MVC از XML File ها برای یکسری از تنظیمات View ها استفاده میشد ، ولی در این نسخه باید از کد نویسی بهره برد .مثلا اگر به یک یا چند NameSpace به صورت مرتب در چندین View نیاز داریم ، میتوان به جای تکرار آنها در همه View ها ، از این فابلیت جدید استفاده نمود .خوب حالا ببینیم چگونه میتوان از این قابلیت در جهت حذف بعضی از عبارات تکراری در View ها استفاده کرد .

مثلن در Create View یک عبارت Using داریم که اگر آنرا حذف کنیم با خطا روبرو خواهیم شد .

حالا فرض کنید این دستور Using در دهها View تکرار شده و بهتر است به شکل دیگری از یک یک آنها حذف و فقط از طریق یک آیتم به آنها معرفی شود . برای اینکار باید از ViewImports استفاده نمود.

بر روی فولر View کلیک راست کرده و باز هم یک Add New Item بزنید .

این نوع جدید که در تصویر مشخص است را انتخاب و با همین نام این Object جدید را ایجاد کنید .خوب حالا اگر عبارت Using را از Create View حذف و به این فایل منتقل کنم ، به هدف خود رسیده ام. پروژه را اجرا و از Create View با موفقیت استفاده کنید .

در ادامه به معرفی یکی از قابلیتهای جدید MVC Core 1 پرداخته که تا حدودی ViewImports هم در روند استفاده از آن نقش خواهد داشت . دقت کنید که این قابلیت بسیار مفید و کاربردی بوده و Microsoft و تیم MVC از حدود 1سال قبل مانور زیادی بر روی این توانمندی در جهت نزدیک شدن MVC و بخشهای آن با Pure Html داشته اند .

معرفی Tag Helpers و چگونگی استفاده از آن در MVC Core .

Tag Helper ها شباهت زیادی به Html Tag ها دارند. در خیلی از موارد میتوانید به جای HTML Helper از یک Tag Helper استفاده کنید و کلن در نتیجه برای شما HTML Tag تولید و در View شما Generate خواهد شد .علت ترجیح Tag Helper ها سبکتر بودن و نزدیک بودن آنها به HTML Tag ها میباشد .

الان در تصویر بالا به Label دقت کنید . این عبارت نفق LabelFor را HTML Helper ها دارد و مقدار Name را از طریق Model تشخیص داده و نمایش خواهد داد. دفت کنید که تا به امروز که من این مطلب را مینویسم ، ماکروسافت اجباری در استفاده از این آیتم نداشته و بعضی HTML Helper را ساده تر میدانند و بعضی Tag Helper ها را ترجیح داده و به دلیل نزدیکی به HTML آنرا خوانا تر میدانند .

برای استفاده از Tag Helper ها باید یک Library جدید از طریق Nuget نصب کنیم و پس از آن از این قابلیت در View ها استفاده کنیم .

ظاهرا دوباره باید به سراغ Project.Json رفته و یک Library جدید به آن اضافه کنیم. یک خط کد مطابق زیر در Dependency ها اضافه میکنیم .

حال باید Razor View اصلن جهت استفاده از Tag Helper ها تنظیم شوند. برای اینکار میشود یک به یک هر View را تنظیم یا از طریق _Layout و LayoutImports اینکار را انجام داد. در اینجا مطابق زیر فایل LayoutImports را اصلاح کنید .

حالا در Index View از این Tag Helper ها استفاده خواهیم کرد. در Index یک Helper داریم که یک ActionLink است و یک Link برای مراجعه به صفحه Details بر اساس ID تولید میکند .یک Link دیگر هم قصد دارم بسازم تا ما را به صفحه Create هدایت کند . برای ساخت Link مراجعه به صفحه Createمشابه زیر عمل کنید .

یک راه استفاده از HTML بدون دخالت هیچ آیتم اضافی است . مانند زیر.

یک راه هم استفاده از یک Tag Helper و آدرس دهی جهت تولید این Link خواهد بود.

خوب ببینید زیبا نیست ؟. عبارت اول نام Controller را مشخص کرد و بعدی نام Action را ولی هنوز در حال استفاده از یک A Tag میباشیم . حتی میتوانستم به دلیل کار در HomeController قسمت مشخص کردن Controller را هم ننویسم چون در صورت عدم مشخص شدن به سراغ Currect Controller خواهد رفت . این مدل از کدنویسی زیباتر و ساده تر است . اگر الان پروژه را اجرا کنید هم خواهید دید که یک Link ساده برای شما ایجاد شده است .

حالا به سراغ لینک بالایی که یک Action Link بود برویم .

خوب حالا دقت کنید ، نام Action را تایین کردم و پس از ان چون باید ID را مقدار دهی کنم توسط قسمت دوم در Route باید id را تعریف و مقدار دهی کنم. خط کد قبلی را هم Comment نمودم. این هم نتیجه پس از اجرا .

دقت کنید که تعداد Tag Helper ها بیشتر از این حرفهاست و در قسمتهای بعدی به بعضی دیگر اشاره خواهیم کرد . پس از اتمام کل این Course هم کم کم در مقالات پراکنده به آنها خواهیم پرداخت . دقت کنید حتی میتوانید از طریق Tag Helper ها Cache و زمان آنرا تایین کنید . برای Form هم Tag Helper داریم که در بخشهای بعدی از آن استفاده خواهیم نمود.

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

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

امتیاز به مطلب
           
نظرات کاربران
ارسال نظر