Asp.net mvc 5 ASP.NET 5(vNext)中的MVC5/路由
我有一个项目,我们正在寻找与MVC 5和ASP.NET 5/dnx46启动。我知道MVC6有一些变化,但该项目可能会在MVC6退出测试版之前启动-因此ASP.NET5/MVC5 我遇到的问题是路由问题 基于MVC5的任何东西都依赖于System.Web,而System.Web似乎与项目的其余部分没有很好地配合 那么,如何建立一个通用的MVC风格的路由呢Asp.net mvc 5 ASP.NET 5(vNext)中的MVC5/路由,asp.net-mvc-5,asp.net-core,Asp.net Mvc 5,Asp.net Core,我有一个项目,我们正在寻找与MVC 5和ASP.NET 5/dnx46启动。我知道MVC6有一些变化,但该项目可能会在MVC6退出测试版之前启动-因此ASP.NET5/MVC5 我遇到的问题是路由问题 基于MVC5的任何东西都依赖于System.Web,而System.Web似乎与项目的其余部分没有很好地配合 那么,如何建立一个通用的MVC风格的路由呢 我已经找到了一些包含大量样板代码的资源,但我无法想象MS仅仅为了在MVC6之外完成一些基本路由就要求编写/重写所有内容?ASP.NET MVC
我已经找到了一些包含大量样板代码的资源,但我无法想象MS仅仅为了在MVC6之外完成一些基本路由就要求编写/重写所有内容?ASP.NET MVC 5仅在ASP.NET 4.x上运行 ASP.NET MVC 6仅在ASP.NET 5上运行(使用DNX) MVC版本不能在ASP.NET版本之间混合 然而,ASP.NETMVC5和ASP.NETMVC6仍然非常相似,尽管它们当然也有一些显著的变化
例如,尽管MVC 5和MVC 6之间的路由功能非常相似,但注册路由的位置不同。请查看ASP.NET MVC 6应用程序中的示例应用程序。以下内容将添加到Startup.cs以使MVC运行
public void ConfigureServices(IServiceCollection services)
{
services.ConfigureRouting(
routeOptions =>
{
// All generated URL's should append a trailing slash.
routeOptions.AppendTrailingSlash = true;
// All generated URL's should be lower-case.
routeOptions.LowercaseUrls = true;
});
services.AddMvc();
}
public void Configure(IApplicationBuilder application)
{
application.UseMvc();
}
默认情况下会添加属性路由,因此您可以使用[Route]
和/或[HttpGet]
/[HttpPost]
属性
[Route("[controller]")] // [controller] is replaced by 'car'.
public class CarController : Controller
{
[Route("hello")] // Or use [HttpGet]
public string World()
{
return "World";
}
}
旧的学校路线需要更多的工作。您必须在Startup.cs中添加路由
application.UseMvc(routes =>
{
routes.MapRoute(
name: "route1",
template: "hello",
defaults: new { controller = "Car", action = "World" });
});
不能将mvc5与asp.net 5一起使用。如果您需要在mvc6/asp.net 5准备就绪之前发布mvc5应用程序,则不应尝试使用asp.net 5的任何部分。可能会帮助您找到如何更快地翻译代码。它比标准项目模板具有更多的现成功能。