【问题标题】:Adding MVC support to WebForms website project为 WebForms 网站项目添加 MVC 支持
【发布时间】:2014-04-07 00:28:41
【问题描述】:

我们有一个巨大的 webfomrs 网站(不是网络应用程序。没有 .csproj 文件)。我们不打算完全迁移到 MVC,但我们确实有一些要求,其中 MVC 比 webfroms 更有意义。我阅读了这个主题,我的理解是我需要添加程序集,将它们注册到 web.config 并将所有注册添加到 global.asax 文件中。在我的情况下这更容易,因为我们已经使用了路由,所以已经处理好了。

我认为最好的方法是通过nugetMicrosoft.AspNet.Mvc 包安装到网站中。这似乎成功了。我唯一的问题是我找不到在哪里添加 Controller 类。当我想添加一个新项目时,我会得到所有模板,包括。 Razor 页面、Razor 布局、Web API 控制器(v1 和 v2),但没有 MVC 控制器项类型。那么如何创建控制器呢?我可以创建一个普通的.cs 文件并手动执行此操作,但我真的不想这样做。我还可以创建一个新的 MVC Web 应用程序并在那里创建控制器然后复制它们,但这使得集成非常尴尬。如果你明白我的意思的话,这会让整个事情更难卖给高层。

有没有办法将此工具支持添加到现有的 asp.net 网站?

编辑:我设法在App_Code forlder 中手动创建了一个Controller,一切正常。我仍然没有看到对 MVC 的 IDE 支持,所以我需要手动创建所有 ControllersViews。这将使采用变得非常困难。

【问题讨论】:

  • 同时使用 MVC 和 Webforms!!这不是一个好的做法,而且会像我想的那样让事情变得更复杂。
  • @NipunAmbastha - 看来世界其他地方(包括微软)不同意 :) 你可以阅读Asp.net vNext
  • 天啊!!我错过了!技术变化如此之快......就像法拉利:P 感谢您指出我。很高兴今天学到了一些新东西。

标签: c# asp.net asp.net-mvc asp.net-mvc-5


【解决方案1】:

首先看看this的文章,然后开始。如果您在 asp.net Web 表单中拥有自己的路由,并且您认为它将与 mvc 路由兼容,那么在您的应用程序中添加 MVC 支持没有其他问题。您也不需要将 MVC 项目添加到您的解决方案中,您只需要引用 Microsoft.AspNet.Mvc。您只需添加一个控制器和视图文件夹,然后简单地创建控制器类和视图。 但是如果你想这样做,我建议你利用 Web 形式的 MVC 路由的优点,你可以阅读它的优点。看看this 文章以达到相同的目标。

【讨论】:

    【解决方案2】:

    您现在可能已经想出很多了,我相信您也会添加对以下程序集的引用:

    • System.Web.Mvc
    • System.Web.Routing
    • System.Web.Abstractions

    为了能够添加控制器,您可以创建任何派生自Controller 的类,并将其映射到路由逻辑中。这应该可以。

    你有什么错误吗?

    【讨论】:

      猜你喜欢
      • 2019-02-05
      • 2019-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-02
      • 1970-01-01
      相关资源
      最近更新 更多