Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 5 ASP.NET 5(vNext)中的MVC5/路由_Asp.net Mvc 5_Asp.net Core - Fatal编程技术网

Asp.net mvc 5 ASP.NET 5(vNext)中的MVC5/路由

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

我有一个项目,我们正在寻找与MVC 5和ASP.NET 5/dnx46启动。我知道MVC6有一些变化,但该项目可能会在MVC6退出测试版之前启动-因此ASP.NET5/MVC5

我遇到的问题是路由问题

基于MVC5的任何东西都依赖于System.Web,而System.Web似乎与项目的其余部分没有很好地配合

那么,如何建立一个通用的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的任何部分。可能会帮助您找到如何更快地翻译代码。它比标准项目模板具有更多的现成功能。