向WebForms网站项目添加MVC支持

时间:2014-03-05 05:34:46

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

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

我决定最好的方法是通过Microsoft.AspNet.Mvcnuget软件包安装到网站上。这似乎已经成功了。我唯一的问题是我找不到添加Controller类的位置。当我想添加一个新项目时,我得到所有模板,包括。 Razor页面,Razor布局,Web API控制器(v1和v2),但没有MVC控制器项类型。那么我该如何创建控制器呢?我可以创建一个普通的.cs文件并手动完成,但我真的不愿意。我还可以创建一个新的MVC Web应用程序并在那里创建控制器然后复制它们,但这使得集成非常尴尬。如果你知道我的意思,那么整个事情就更难卖给上级了。

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

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

2 个答案:

答案 0 :(得分:0)

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

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

为了能够添加控制器,您可以创建从Controller派生的任何类,并在路由逻辑中映射它。这应该有用。

您收到任何错误吗?

答案 1 :(得分:0)

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