[英]Setting Layout in ActionFilterAttribute.OnActionExecuted is problematic
[英]Defining Layout for the View in OnActionExecuted
在MVC 5.1 Web应用程序项目中,我有一个专用于该项目的Facebook Canvas Application的控制器。 我需要控制器返回的所有视图都具有特定的布局。 (通常,我不会在控制器中定义Layout属性,因为它在View上的内容太多了,但是在这种情况下,我愿意让控制器来指定它,因为这全都与facebook画布有关)。
我可以通过返回来实现
return View("View", "~/Views/Shared/_FacbookCanvasLayout.cshtml");
但在那种情况下,我将不得不在每个视图中使用它。 相反,我要覆盖的是基本控制器类中的OnActionExecuted
方法,并在那里定义布局。
所以我的问题是,如何在OnActionExecuted
类中定义视图的布局-或如果对此有更好的解决方案,该怎么办?
那么怎么做呢?
protected override void OnActionExecuted(ActionExecutedContext filterContext)
{
base.OnActionExecuted(filterContext);
var res = filterContext.Result as ViewResult;
if (res != null)
res.MasterName = "~/Views/Shared/_FacbookCanvasLayout.cshtml";
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.