如何在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之后,将以下内容添加到我的配置中让我开始运行:
和:
通过nuget安装mvc包。
如果您正在使用MVC5,我最好的建议是创建一个全新的项目。 在ASP.NET 4.5和MVC5中,他们将这些技术组合到他们称之为One ASP.NET的技术中。 这使某些事情变得更容易。
创建一个新的ASP.NET WebForms应用程序,然后选择MVC复选框,如果您还需要WebApi,则可能选择WebApi复选框(如果您不需要WebApi,则可以选择)。
然后将所有现有的webforms代码从旧项目复制到新项目。 按照此演练。
如果由于某种原因你不能这样做,那么一个更复杂的过程就是创建新项目,然后将它与你现有的项目进行比较,找出你需要的web.config条目(记住那里有)还有Views文件夹中的web.config,以及需要安装的nuget包。 我强烈建议采用第一种方法,因为第二种方法更为复杂。