我使用MVC 5和希望覆蓋下面查看方法在我的MVC控制器獲取佈局名稱
protected internal virtual ViewResult View(string viewName, string masterName, object model)
我可以有許多不同的佈局意見,希望得到當前佈局在運行時輸入名稱並將其傳遞給覆蓋視圖方法。如何在控制器運行時獲取佈局名稱?
編輯 我不認爲我需要建立什麼我需要做一個自定義視圖引擎。我基本上只想在多個方法和控制器中設置一個ViewBag值,並且不想重複自己。我有在運行時的viewName和模型價值,只是沒有佈局的名字傳遞的masterName參數
protected override ViewResult View(string viewName, string masterName, object model)
{
ViewBag.SomeValue = GetValue();
return base.View(viewName, masterName, model);
}
我認爲你正在談論創建自定義視圖引擎。看看一些例子: http://www.codeproject.com/Articles/294297/Creating-your-own-MVC-View-Engine-into-MVC-Applica http://weblogs.asp.net/ imranbaloch /視圖引擎與動態視圖位置 – MichaelLake
@MichaelLake我不認爲我需要創建一個自定義視圖,我認爲這是對我想要的矯枉過正,我已經編輯上面顯示它是什麼我努力實現。 – TheGaff
@Gene,如果它是不會輕易可以做到什麼,我與查看方法試圖然後我會看看FilterAttribute。我只是認爲爲視圖獲取佈局名稱會更直接,但我可能在這方面有錯誤。 – TheGaff