2
有沒有什麼辦法可以指定整個控制器來使用特定的佈局?我知道你可以在ViewStart中分配佈局,無論如何viewStart知道正在使用哪個控制器?指定整個控制器的佈局
我的目標是有兩個管理佈局,其中一個帶有額外的導航欄,當您使用管理控制器中的任何內容時。
有沒有什麼辦法可以指定整個控制器來使用特定的佈局?我知道你可以在ViewStart中分配佈局,無論如何viewStart知道正在使用哪個控制器?指定整個控制器的佈局
我的目標是有兩個管理佈局,其中一個帶有額外的導航欄,當您使用管理控制器中的任何內容時。
你可以寫一個自定義的行爲過濾:
public class LayoutAttribute : ActionFilterAttribute
{
private readonly string _layout;
public LayoutAttribute(string layout)
{
_layout = layout;
}
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
var result = filterContext.Result as ViewResult;
if (result != null)
{
result.MasterName = _layout;
}
}
}
,然後裝飾與它的控制器和withing該控制器將使用您所指定的佈局中的所有動作(返回查看結果很明顯):
[Layout("_SimpleLayout")]
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult About()
{
return View();
}
}