我宁愿做MVC,因为常规的WebForms开发吃掉了我的灵魂。
但是,我已经获得了一个相当大的WebForms项目来添加一些功能。
无论如何,WebForms和ASP.NET MVC在单个项目中共存还是共同处理网站?我知道我要求破解。答案 0 :(得分:8)
这里......
这是一个非常粗略的解释,但你要求悬崖笔记。故事的道德是跟随一个新的/空白的mvc项目,并在web.config中添加必要的条目,引用必要的程序集,并为mvc模式创建正确的文件结构。
答案 1 :(得分:2)
我还没有这样做 - 但根据Chad Myer的博客文章,这似乎是可能的。它有点旧了。 http://www.chadmyers.com/Blog/archive/2007/11/30/asp.net-webforms-and-mvc-in-the-same-project.aspx
答案 2 :(得分:1)
这是我将 MVC5 添加到现有Web窗体项目的方法
创建一个新的ASP.NET MVC项目。您可以使用它将信息复制到现有项目。
在现有项目中,使用 nuget 添加引用。这还将更新 Web.config 并添加 jQuery 文件。将其复制到程序包管理器控制台
Install-Package -Id "Microsoft.AspNet.Mvc" -Version 5.2.2" -ProjectName ExistingWebApp
Install-Package -Id "jQuery" -Version "1.10.2" -ProjectName ExistingWebApp
Install-Package -Id "jQuery.Validation" -Version "1.11.1" -ProjectName ExistingWebApp
Install-Package -Id "Microsoft.AspNet.Web.Optimization" -Version "1.1.3" -ProjectName ExistingWebApp
Install-Package -Id "Microsoft.jQuery.Unobtrusive.Validation" -Version "3.2.2" -ProjectName ExistingWebApp
Install-Package -Id "Modernizr" -Version "2.6.2" -ProjectName ExistingWebApp
复制 BundleConfig , Routeconfig , FilterConfig 以及 App_Start
将注册行从Application_Start
添加到 Global.asax 。您可以从新项目中获取它们。
将这些密钥添加到 Web.config 的<appsettings>
<add key="webpages:Version" value="3.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="PreserveLoginUrl" value="true" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
添加对 Microsoft.CSharp 程序集的引用
添加视图和控制器文件夹
现在您可以像在任何Mvc项目中一样开始添加视图和控制器
答案 3 :(得分:0)
如果你有另一本书的空间,我强烈推荐史蒂夫桑德森的书http://bit.ly/1W03Tv(我不是一个痣...它只是帮了我一吨)。他在那里有一章关于“结合MVC和WebForms”。
我想在这里总结一下这个过程,但它有点冗长。如果你有机会,试试吧。
答案 4 :(得分:0)
现在,在2011年,我们拥有.NET 4.0,并且很容易将它们组合在一起。只需启动一个新的MVC3项目,添加一个HomeController和一个视图(即Home / Index.cshtml),然后添加一个新文件夹,比如/ Admin,然后在其中添加一个web表单,如/Admin/Default.aspx ...就是这样,运行它,主页将使用MVC,管理部分将使用Web表单。
答案 5 :(得分:0)
另外 - 为了添加上下文菜单,将“MVC”项目类型({E53F8FEA-EAE0-44A6-8774-FFD645390401})添加到项目文件中
<ProjectTypeGuids>{E53F8FEA-EAE0-44A6-8774-FFD645390401};{...};{...}</ProjectTypeGuids>