我們有一個正在運行的解決方案包含許多web forms
應用程序與相同的母版頁,我們爲母版頁及其控件創建了一個類庫項目並將其作爲參考dll
內部每個網頁表單應用程序和編程分配母版頁使用web窗體母版頁作爲母版頁ASP.Net MVC視圖編程式
現在我們將添加兩個新的應用程序到我們的解決方案,但我們決定使用ASP.Net MVC 3
建設這些新的應用程序。
問題是,我們必須爲新的應用程序使用相同的母版頁,那麼我們如何使用代碼爲我們的視圖設置母版頁?
小心記住我們的母版頁是一個類庫項目。
我們有一個正在運行的解決方案包含許多web forms
應用程序與相同的母版頁,我們爲母版頁及其控件創建了一個類庫項目並將其作爲參考dll
內部每個網頁表單應用程序和編程分配母版頁使用web窗體母版頁作爲母版頁ASP.Net MVC視圖編程式
現在我們將添加兩個新的應用程序到我們的解決方案,但我們決定使用ASP.Net MVC 3
建設這些新的應用程序。
問題是,我們必須爲新的應用程序使用相同的母版頁,那麼我們如何使用代碼爲我們的視圖設置母版頁?
小心記住我們的母版頁是一個類庫項目。
看這個文章,得到一個概述有關使用MVC混合Web表單:
另一個有趣的項目是Zeus當涉及到混合Web表單/ MVC解決方案。 它包含助手在Webform頁面上使用HtmlHelper和UrlHelper。
如果你真的想走向前進的MVC路線,那麼你應該投入一些時間來將你的主頁面轉換爲佈局。其他一切都是黑客/解決方法。
埃米爾,我上傳了一個工作樣本here。步驟
1)從here下載並轉換示例應用程序。
2)在此解決方案中添加MVC 3應用程序,並添加引用上述解決方案的類庫。
3)在MVC視圖中指定MasterPage(在視圖中,MasterPageFile="~/MasterPageDir/MasterPage.master"
或在控制器中返回View("Index",masterName: MasterPageVirtualPathProvider.MasterPageFileLocation);
)。
4)將這些行放在global.asax中。
MasterPageVirtualPathProvider vpp = new MasterPageVirtualPathProvider();
HostingEnvironment.RegisterVirtualPathProvider(vpp);
+1,但它取決於'VirtualPathProvider'。不幸的是我們的舊項目不使用它:(看來我必須將母版頁Html複製到我的'_layout'視圖中,並使樣式和圖像指向生產版本(在線)。 – 2012-01-02 14:05:45
感謝偉大的職位,但它談論的Web站點內的母版頁不是類庫項目(DLL)。 – 2011-12-28 15:43:31
這篇文章講述瞭如何在ASPX引擎和Razor引擎之間共享母版頁。這是否與ASP.Net MVC 3.0 Razor Engine項目共享常規ASP.Net Mater頁面的方法相同? – HaBo 2011-12-30 15:08:25
@HaBo:我完全不明白你的問題。這篇文章討論瞭如何在ASP.NET MVC Razor Views中使用Webforms Masterpage。 – Jan 2011-12-31 14:22:32