راههای متفاوت رندر لایهها در ASP.NET MVC
نویسنده: محمد رضا صفری
تاریخ: ۱۳۹۳/۰۱/۲۵ ۰:۵۵
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
روش شماره 1 : استفاده از _ViewStart موجود در ریشهی پوشه Views
با استفاده از کد زیر میتوانیم فایل پیش فرضی را که قرار است رندر شود، تغییر دهیم:
@{
var controller = HttpContext.Current.Request.RequestContext.RouteData.Values["Controller"].ToString();
string layout = "";
if (controller == "Admin")
{
layout = "~/Views/Shared/_AdminLayout.cshtml";
}
else
{
layout = "~/Views/Shared/_Layout.cshtml";
}
Layout = layout;
}
روش شماره 2 : مشخص کردن لایه در Action
همچنین میتوانیم فایل مورد نظر را در اکشن خودمان، بازنویسی (override) کنیم:
public ActionResult Index()
{
RegisterModel model = new RegisterModel();
//TO DO:
return View("Index", "_AdminLayout", model);
} روش شماره 3 : مشخص کردن لایه به ازای هر View
میتوانیم در هر View هم لایه مربوط به آن را مشخص کنیم:
@{
Layout = "~/Views/Shared/_AdminLayout.cshtml";
} روش شماره 4 : اضافه کردن فایل _ViewStart به ازای هر کنترلر
همانطور که در تصویر زیر میبینید آخرین روش این هست که میتوانید فایلهای _ViewStart مختلفی را به ازای هر کنترلر، داخل پوشه View مربوطه قرار بدید تا سیستم از آن استفاده کند.