Helper داخلی سفارشی در MVC
چهارشنبه 3 تیر 1394در این مقاله قصد داریم به پیاده سازی Helper داخلی سفارشی (Custom Inline Helper)در تکنولوژی ASp.MVC را بپردازیم.
در این مقاله درباره متدهای Helper صحبت خواهیم کرد و همچنین به توضیحی درباره ایجاد و استفاده از این متد ها میپردازیم.
Helper Methods:
متد های Helper مجموعه ای است که به زبان کد و به زبان نشانه گذاری (Html) مورد استفاده قرار میگیرند. در واقع دو نوع متد helper وجود دارد که یکی به نام متدinline helper و دیگری متد external helper است که در این مقاله به پیاده سازی متد inline helper میپردازیم
حال برای شروع ویژوال استادیو را باز کنید و یک پروژه از نوع MVC ایجاد کنید.
یک کنترلر از نوع Home ایجاد کنید وکد های زیر را داخل آن بنویسید
using System.Web.Mvc; namespace CustomInlineHelper.Controllers { public class HomeController: Controller { public ActionResult Index() { ViewBag.Fruits = new string[] { "سیب", "هویچ", "پرتقال" }; ViewBag.Flowers = new string[] { "گل رز", "گل مریم", "گل محمدی" }; return View(); }
همان طور که مشاهده میکنید دو تا ViewBag ایجاد کردیم و آن را با آریه ای از string ها پر کردیم
حال یک view از متد Index میسازیم
@{ ViewBag.Title = "Home Page"; } <div class="row"> <div class="col-md-6"> <h2>میوه </h2> <ul> @foreach (var item in (string[])ViewBag.Fruits) { <li>@item</li> } </ul> </div> <div class="col-md-6"> <h2>گل </h2> <ul> @foreach (var item in (string[])ViewBag.Flowers) { <li>@item</li> } </ul> </div> </div>
همان طور که مشاهده میکنید برای خواندن اطلاعات View Bag ها از دو تا foreach استفاده کردیم
حال از برنامه اجرا بگیرید
حال شما فرض کنید که یک لیست نامرتب داریم و میخواهیم آن را به لیستی مرتب تبدیل کنیم حال برای استفاده از متد helper کافی است تغیراتی در View خود انجام دهیم
@helper ListItems(string [] items) { <ul> @foreach (var item in items) { <li>@item</li> } </ul> }
در کد قبل با استفاده از دستور ReZor از یک helper به نام ListItem استفاده کردیم همان طور که مشاهده میکنید با استفاده از "herper " تنها از یک froeach برای فراخوانی و استفاده از ViewBag ها استفاده کرده ایم.
حال در این مرحله دوباره به باز نویسی view، Index میپردازیم
@helper ListItems(string[] items) { <ul> @foreach (var item in items) { <li>@item</li> } </ul> } <div class="row"> <div class="col-md-6"> <h2>میوه ها </h2> @ListItems(ViewBag.Fruits) </div> <div class="col-md-6"> <h2>گل ها </h2> @ListItems(ViewBag.Flowers) </div> </div>
حال گاهی اوقات لازم است که از یک دستور در View های مختلف استفاده کنیم ودر حقیقت میخواهیم یک برنامه با بهینه سازی هر چه بیشتر بنویسیم برای این کار کافی است یک فولدر به نام App_Code ایجاد کنیم ( این نکته را یادآوری کنیم که برای دسترسی به همه view ها باید حتما نام فولدر App_Code)باشد و یک view داخل آن ایجاد میکنیم و کد های زیر را داخل آن مینویسیم.
@helper ListItems(string[] items) { <ul> @foreach (var item in items) { <li>@item</li> } </ul> }
حال دوباره View Index را باز سازی میکنیم.
@{ ViewBag.Title = "Home Page"; } <div class="row"> <div class="col-md-6"> <h2>Fruits</h2> @GlobalHelper.ListItems(ViewBag.Fruits) </div> <div class="col-md-6"> <h2>Flowers</h2> @GlobalHelper.ListItems(ViewBag.Flowers) </div> </div>
- ASP.net MVC
- 1k بازدید
- 0 تشکر