我正在扩展WebFormViewEngine,当我在运行时覆盖FindView和debug时,masterName参数似乎总是一个空字符串。
参数masterName代表什么?
MSDN没有帮助:“主人的名字”。
public override ViewEngineResult FindView(ControllerContext controllerContext, string viewName, string masterName, bool useCache)
感谢。
答案 0 :(得分:7)
如果开发人员指定了一个,则它是所请求的母版页(布局文件)的名称。 View()
方法(以及某些ViewResult
属性)的重载之一是要使用的母版页的名称。例如:
public ActionResult ShowViewWithSpecificLayout() {
return View("MyView", "MyOtherLayout");
}
您获得的主名称通常是空的,因为从控制器中指定自定义母版页是相对罕见的。在大多数情况下,视图本身会选择适当的母版页。我在控制器中看到它的一个案例是,如果有特殊情况,例如从移动设备浏览,其中备用母版页是有用的。