2009-02-17 81 views
2

我可以通過編程獲取將在asp.net MVC應用程序中使用的主頁名稱的最早點是什麼?在asp.net MVC中獲取主頁名稱

正在改變視圖數據的想法取決於母版頁。我希望能夠儘早設置一些內容,以便單個開發人員不需要知道如何填充它。理想情況下,它只會發生在後臺。

在simplist場景中,我們可以針對不同類型的頁面使用不同的主頁面,例如默認的頁面,leftnav,rightnav和footer,或者可能缺少rightnav的安全頁面。

感謝

回答

2

我說當你的母版頁被稱爲將是正確後,您的觀點已經得到您的視圖引擎解決的地步。

public ActionResult Index() 
{ 
    return View("index","masterpagename"); 
} 

我認爲,如果你想與你的母版任何會被方式:您可以打電話時,你的控制器查看方法雖然設置你的母版。我不知道你的問題的上下文,但我認爲你想操縱視圖和/或viewdata取決於哪個masterpage被使用?也許問題的解決方案不是以編程方式首先獲取masterpage的名稱?

此外,編輯之後: 您可以做的是創建一個新的「基本」控制器,它繼承了默認的控制器類。然後你重寫查看方法,並告訴你的開發人員使用:

public class MySuperController : Controller 
{ 
    protected override ViewResult View(string viewName, string masterName, object model) 
    { 
    // do something here so your masterpage is different depending on the context // 
    string newMasterName = "something-something"; 
    return base.View(viewName, newMasterName, model); 
    } 
} 

我認爲'所有其他視圖方法既可以通過這個被路由,或者在你的情況不使用(那些需要你傳遞一個IView)。

+0

是的,這是正確的,從本質上改變視圖數據取決於使用的母版頁。 – NikolaiDante 2009-02-17 11:37:54