我閱讀過大部分(如果不是全部)關於將MVC 3添加到現有webforms站點的文章。我已經對webforms站點的全局asax進行了更改,以支持MVC以及對web.config的更改。但是仍然存在一些問題。使用現有的Webforms站點運行MVC
MVC 3是貪婪的 - 默認情況下,它需要在網站的根目錄,使導航到根我去爲MVC,而不是web表單頁面的入口頁面這是我想要的。在導航到根目錄時要清楚,我希望它轉到mysite.com/default.aspx。要解決站點根我添加
routes.MapPageRoute(「SiteRoot」,「」,「〜/ Default.aspx的」) 然而,這則打破了MVC的URL,使得我最終搞砸網址像
http://localhost:86/default?action=Index&controller=Blog 我該如何解決這個問題,使網站的根目錄轉到webforms default.aspx,並仍然有我的MVC網址是正確的?
MVC 3打破了Webform使用的HttpHandlers的關係。具體來說,我使用處理程序將遠期過期頭添加到圖像和資源處理程序以組合樣式表和JavaScript文件。 RegisterRoutes中任何路由的絕對存在都會破壞這些處理程序,因此樣式表不會通過資源處理程序加載,並且我失去了將來的過期時間,並且有一個httpcompression模塊也會停止工作。那麼如何維護webforms的httphandlers和模塊,同時仍然保留站點MVC 3部分的路由?
這兩個問題我沒有看到任何人在各種博客文章中有關混合MVC3和webforms的地址。
哦,我有routes.IgnoreRoute(「{resource} .aspx/{* pathInfo}」)在global.asax中。資源處理程序使用一個aspx文件擴展名,所以我會認爲這個排除在全球範圍內的hanlder會工作,但我猜不是。
我知道的另一個選擇是在wbeforms站點內建立一個文件夾,並將其作爲自己的應用程序起點運行 - 但是,我最終得到了一個我並不真正想要的網址,如site.com/blog/blog/index第一個博客是作爲自己的應用程序點運行的文件夾,第二個博客是控制器。
好的,謝謝,我會試試看。 –