我一直在这里为内部应用程序一起运行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 –