2010-11-02 16 views
2

我擴展WebFormViewEngine,當我重寫FindView並在運行時調試,masterName參數似乎總是一個空字符串。我應該期待什麼值masterName在WebFormViewEngine.FindView

參數masterName代表什麼?

MSDN沒有幫助:「主人的名字」。

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

謝謝。

回答

5

如果開發者指定了一個,它是所請求的母版頁(佈局文件)的名稱。 View()方法的重載之一(以及ViewResult屬性的一部分)是要使用的母版頁的名稱。例如:

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

您得到的主名稱通常是空的,因爲從控制器中指定自定義主頁面相對較少。在大多數情況下,該視圖本身會選擇適當的母版頁。從控制器內部看到它的一種情況是,如果存在特殊情況,例如從移動設備進行瀏覽,則備用母版頁有用。

相關問題