默认情况下,asp.net core使用如 http://localhost:5000/homeindex 类的大驼峰路由。但是如果想使用小写的路由,并且这些路由用破折号分隔:http://localhost:5000/home-index它们比较常见且一致。

1、如何生成小写的路由可以这样设置

2、生成带破折号并且小写的路由可以这样设置

似乎上面使用特性路由可以解决这个问题。但是我不想使用,因为每个action都要手动去设置,太繁琐也很容易出错。

我想要的效果是在程序中写个扩展类做到可配置处理。

3、解决方案

以下支持asp.net core version>=2.2

要做到这一点,首先创建slugifyparametertransformer类应该如下所示

3.1 对于asp.net core2.2 mvc:

在startup中confiregeservices这样配置

路由如下配置:

3.2  对于asp.net core2.2 web api:

在startup中confiregeservices这样配置

3.3 对于asp.net core>=3.0 mvc:

在startup中confiregeservices这样配置

路由如下配置:

3.4 对于asp.net core>=3.0 web api:

在startup中confiregeservices这样配置

3.5 对于asp.net core>=3.0 razor pages:

在startup中confiregeservices这样配置

这样会使/sys/userlist路由变为/sys/user-list

3.6 对于上面mvc项目,路由模板要调整很多,其实还可以通过实现icontrollermodelconvention来实现。

在startup中confiregeservices这样配置

译文:

译者:realyrare

出处:

以上就是asp.net core自动生成小写破折号路由的实现方法的详细内容,更多关于asp.net core生成小写破折号路由的资料请关注www.887551.com其它相关文章!