如何在ASP.NET 5(MVC 6)中生成生成的路由小写?

Mar*_*cze 3 c# asp.net asp.net-core-mvc

如果我们要求MVC框架为我们生成URL,例如通过UrlHelper在控制器内部使用,生成的URL中的路由段将是大写的.

[Route("[controller]")]
public class PeopleController : Controller
{
    [HttpGet]
    public IActionResult Get()
    {
        var url = this.Url.Action("Get", "People"); // Returns "/People"

        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

如何告诉MVC生成小写路由,所以在上面的例子中,返回"/ people"?

Mar*_*cze 9

实现这一点很简单,在ConfigureServices我们Startup类的方法中,我们只需要通过将LowerCaseUrls属性设置为true 来配置路由.

public class Startup
{
    ...

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddRouting(routeOptions => routeOptions.LowercaseUrls = true);

        ...
    }
}
Run Code Online (Sandbox Code Playgroud)