我一直在這裏爲內部應用程序一起運行Webforms和MVC。它開始作爲一個webforms應用程序,我已經將其遷移到MVC2(然後3),仍然有幾個仍然成功地與Webforms合作。如Darin所說,主要的問題是模板化。如果您使用Webforms View Engine,則必須創建2層主頁面。 Webforms代碼(如腳本管理器)不能在MVC頁面上運行,並且MVC代碼在Webforms頁面下不起作用。
我的母版頁設置了全局母版頁,不包含任何MVC或Webforms代碼。它只有CSS,全局JavaScript和主佈局。然後我有一個MVC母版頁和一個webforms母版頁,都有指令將全局母版頁用作母版頁。然後,每個webforms頁面使用Webforms子主頁面,而MVC使用MVC sub-master頁面。
如果您需要在全局母版頁中放置一些代碼,您可以通過測試Page is System.Web.Mvc.ViewPage
來檢測子頁面是否爲Webforms或MVC頁面。如果這是true
那麼它是一個MVC頁面,否則它是一個Webforms頁面。但是,如果您決定使用Razor視圖引擎(我建議用於MVC,那麼它會更好),這會變得更加困難。你必須做一些額外的工作,通過我之前提到的。 This blog post應該在這方面提供幫助。
謝謝。這也導致我到其他職位:http://www.eworldui.net/blog/post/2008/05/09/ASPNET-MVC-Living-in-a-Web-Forms-World.aspx和http:// www.eworldui.net/blog/post/2011/01/07/Using-Razor-Pages-with-WebForms-Master-Pages.aspx –