首页 / 问答 / [.NET/.NET Core]ASP.NET Core 应用程序中如何将路由地址(Url)自动转换成小写呢?

[.NET/.NET Core]ASP.NET Core 应用程序中如何将路由地址(Url)自动转换成小写呢?

.NET C# .NET Core ASP.NET Core .NET 5 1.85K 次浏览
0

在传统的ASP.NET 4或者ASP.NET 5的应用程序中,我们可以通过在RegisterRoutes处理器中配置路由的routes.LowercaseUrls = true;属性来将路由地址自动转换成小写字母。但是在ASP.NET Core没有RegisterRoutes处理器了。

那么,在ASP.NET Core 应用程序中,应该如何将路由地址(Url)自动转换成小写呢?

回复 [×]
提交评论
请输入评论内容

2 个回答

  • 0

    在ASP.NET Core 2.2中,可以通过路由约束映射ConstraintMap来实现将路由地址自动转换成小写的功能,首先创建一个继承自IOutboundParameterTransformer的实现类SlugifyParameterTransformer.cs,代码如下:

    这个路由转换器将会把路由/Employee/EmployeeDetails/1转换成/employee/employee-details/1而不是/employee/employeedetails/1

    ASP.NET Core 2.2 MVC

    在ASP.NET Core 2.2 MVC项目中,通过Startup.cs启动文件的ConfigureServices来应用自定义路由转换器,如下:

    路由规则配置如下:

    ASP.NET Core 2.2 Web API

    在ASP.NET Core 2.2 Web API的应用程序中,通过Startup.cs启动文件的ConfigureServices来应用自定义路由转换器,如下:

    ASP.NET Core >=3.0 MVC

    在ASP.NET Core >=3.0 MVC的应用程序中,通过Startup.cs启动文件的ConfigureServices来应用自定义路由转换器,如下:

    路由配置规则如下:

    ASP.NET Core >=3.0

    在ASP.NET Core >=3.0的应用程序中,通过Startup.cs启动文件的ConfigureServices来应用自定义路由转换器,如下:

    ASP.NET Core >=3.0 Razor Pages

    在AASP.NET Core >=3.0 Razor Pages的应用程序中,通过Startup.cs启动文件的ConfigureServices来应用自定义路由转换器,如下:

    Rector的个人主页

    Rector

    2021-04-22 回答

    • 0

      在ASP.NET Core 3.0中,如果你只想要将路由Url地址转换成小写,则可以通过AddRouting()的扩展方法来配置,如下:

      Rector的个人主页

      Rector

      2021-04-22 回答

      我来回答