我想为 asp.net mvc3 中的每个控制器操作请求返回相同的视图。实现此目的的最佳方法是什么。我不想在每个控制器操作中都写视图名称
问问题
75 次
2 回答
0
如果您希望它用于单个控制器,则OnActionExecuted
在此控制器中覆盖:
protected override void OnActionExecuted(ActionExecutedContext filterContext)
{
var viewResult = filterContext.Result as ViewResultBase;
if (viewResult != null)
{
viewResult.ViewName = "view-name";
}
base.OnActionExecuted(filterContext);
}
如果您想要整个应用程序,请覆盖ViewEngine
:
public class RazorViewEngineViewMobileSupport : RazorViewEngine
{
public override ViewEngineResult FindPartialView(ControllerContext controllerContext, string partialViewName, bool useCache)
{
return base.FindPartialView(controllerContext, "view-name", useCache);
}
public override ViewEngineResult FindView(ControllerContext controllerContext, string viewName, string masterName, bool useCache)
{
return base.FindView(controllerContext, "view-name", masterName, useCache);
}
}
于 2013-04-04T10:00:28.180 回答
0
你可以使用
Return RedirecToAction(ActionName)
所以你可能有类似的东西
<ActionName("PageX")> _
Function PageX() As ActionResult
Return RedirectToAction("CommonView")
End Function
<ActionName("PageY")> _
Function PageY() As ActionResult
Return RedirectToAction("CommonView")
End Function
<ActionName("PageZ")> _
Function PageZ() As ActionResult
Return RedirectToAction("CommonView")
End Function
<ActionName("CommonView")> _
Function CommonView() As ActionResult
Return View()
End Function
于 2013-04-01T10:50:11.833 回答