WebForms和MVC可以存在于一个项目中吗?

时间:2009-11-06 03:16:28

标签: asp.net-mvc webforms

我宁愿做MVC,因为常规的WebForms开发吃掉了我的灵魂。

但是,我已经获得了一个相当大的WebForms项目来添加一些功能。

无论如何,WebForms和ASP.NET MVC在单个项目中共存还是共同处理网站?我知道我要求破解。

6 个答案:

答案 0 :(得分:8)

这里......

  1. 确保您的项目针对的是.NET 3.5
  2. 添加引用(并确保它们复制到本地)MVC的大3程序集(System.Web.Mvc,.Abstractions,.Routing)
  3. 如果您的项目中还没有Global.asax,请添加一个Global.asax。
  4. 转到后面的Global.asax代码并添加必要的代码,使其看起来就像MVC Global.asax(我不打算输入它,只需创建一个新的MVC项目并查看Global.asax并添加当前缺少当前Global.asax代码的东西)
  5. 为“控制器”创建顶级文件夹& “视图”
  6. 为相应的控制器创建“视图”的子文件夹(例如视图 - >主页)
  7. 将.aspx文件添加到视图文件夹时,请确保将基类从System.Web.UI更改为System.Web.ViewPage并删除标记
  8. 启动一个新的空白MVC项目并在web.config中查找“UrlRoutingModule”,并将这些引用添加到WebForms web.config中的相同位置
  9. 检查system.web - >页面 - >新MVC项目的名称空间节点,并将MVC特定的名称添加到WebForms web.config
  10. 这是一个非常粗略的解释,但你要求悬崖笔记。故事的道德是跟随一个新的/空白的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窗体项目的方法

  1. 创建一个新的ASP.NET MVC项目。您可以使用它将信息复制到现有项目。

  2. 在现有项目中,使用 nuget 添加引用。这还将更新 Web.config 并添加 jQuery 文件。将其复制到程序包管理器控制台

  3.     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
    
    1. 复制 BundleConfig Routeconfig FilterConfig 以及 App_Start

    2. 将注册行从Application_Start添加到 Global.asax 。您可以从新项目中获取它们。

    3. 将这些密钥添加到 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" />
      
    4. 添加对 Microsoft.CSharp 程序集的引用

    5. 添加视图控制器文件夹

    6. 现在您可以像在任何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>