如何在WebForms项目中启用MVC?

我有一个现有的webforms项目。 我从Nuget添加了MVC5,并添加了以下内容:

_Viewstart.cshtml Shared _Layout.cshtml Areas Test Controllers TestController.cs Views Test.cshtml 

我的控制器:

  public class TestController : Controller { [Route("Test/Test")] public ActionResult Test() { return View(); } } 

我的Global.asax

  AreaRegistration.RegisterAllAreas(); BundleConfig.RegisterBundles(BundleTable.Bundles); RouteConfig.RegisterRoutes(RouteTable.Routes); 

然而,当我导航到/Test/Test ,我找不到404。 我错过了什么?

更新我最终基于模板化的MVC5项目向我的web.config添加了一些东西,现在我已经命中了控制器方法并且查找了视图。 我现在正处理其他事情,但我认为它与MVC配置无关,所以我认为它真的“那么容易”。

在查看默认的MVC5 web.config之后,将以下内容添加到我的配置中让我开始运行:

       

和:

              

如果您正在使用MVC5,我最好的建议是创建一个全新的项目。 在ASP.NET 4.5和MVC5中,他们将这些技术组合到他们称之为One ASP.NET的技术中。 这使某些事情变得更容易。

创建一个新的ASP.NET WebForms应用程序,然后选择MVC复选框,如果您还需要WebApi,则可能选择WebApi复选框(如果您不需要WebApi,则可以选择)。

然后将所有现有的webforms代码从旧项目复制到新项目。 按照此演练。

https://docs.microsoft.com/en-us/aspnet/visual-studio/overview/2013/one-aspnet-integrating-aspnet-web-forms-mvc-and-web-api

如果由于某种原因你不能这样做,那么一个更复杂的过程就是创建新项目,然后将它与你现有的项目进行比较,找出你需要的web.config条目(记住那里有)还有Views文件夹中的web.config,以及需要安装的nuget包。 我强烈建议采用第一种方法,因为第二种方法更为复杂。