我应该期望WebFormViewEngine.FindView中的masterName有什么价值

时间:2010-11-02 05:31:19

标签: asp.net-mvc asp.net-mvc-2

我正在扩展WebFormViewEngine,当我在运行时覆盖FindView和debug时,masterName参数似乎总是一个空字符串。

参数masterName代表什么?

MSDN没有帮助:“主人的名字”。

public override ViewEngineResult FindView(ControllerContext controllerContext, string viewName, string masterName, bool useCache)

感谢。

1 个答案:

答案 0 :(得分:7)

如果开发人员指定了一个,则它是所请求的母版页(布局文件)的名称。 View()方法(以及某些ViewResult属性)的重载之一是要使用的母版页的名称。例如:

public ActionResult ShowViewWithSpecificLayout() {
    return View("MyView", "MyOtherLayout");
}

您获得的主名称通常是空的,因为从控制器中指定自定义母版页是相对罕见的。在大多数情况下,视图本身会选择适当的母版页。我在控制器中看到它的一个案例是,如果有特殊情况,例如从移动设备浏览,其中备用母版页是有用的。