我应该期待什么值masterName在WebFormViewEngine.FindView

问题描述:

我扩展WebFormViewEngine,当我重写FindView并在运行时调试,masterName参数似乎总是一个空字符串。我应该期待什么值masterName在WebFormViewEngine.FindView

参数masterName代表什么?

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

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

谢谢。

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

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

您得到的主名称通常是空的,因为从控制器中指定自定义主页面相对较少。在大多数情况下,该视图本身会选择适当的母版页。从控制器内部看到它的一种情况是,如果存在特殊情况,例如从移动设备进行浏览,则备用母版页有用。