首页 新闻 会员 周边

abpvnext7.0 访问路由如何设置小写

0
悬赏园豆:10 [已解决问题] 解决于 2023-09-04 09:25

如题,最近在学习abpvnext7.*,通过abp.io下载的模板,请求默认的/Account/Login时,使用的Razor,想将访问的路由设置为统一小写,参考了其他资料。
使用如下代码都没生效

public override void ConfigureServices(ServiceConfigurationContext context)
{
    var hostingEnvironment = context.Services.GetHostingEnvironment();
    var configuration = context.Services.GetConfiguration();
    Configure<RouteOptions>(options =>
    {
        options.LowercaseUrls = true;
        options.LowercaseQueryStrings = true;
    });
    // 或者
    context.Services.AddRouting(options =>
    {
        options.LowercaseUrls = true;
        options.LowercaseQueryStrings = true;
    });
}


public override void OnApplicationInitialization(ApplicationInitializationContext context)
{
    app.UseRouting();
}
小手冰凉tel的主页 小手冰凉tel | 初学一级 | 园豆:73
提问于:2023-09-03 18:55
< >
分享
最佳答案
0

在ASP.NET Core中将路由设置为统一小写应该是一个有效的方法。但是,在ABP框架中,可能需要一些额外的配置来确保这个功能正常工作。以下是一些可能导致问题的原因和解决方法:

配置应用程序的路由在正确的地方:确保你的路由配置代码位于OnApplicationInitialization方法内,如你的示例所示。这是正确的地方,因为路由配置需要在应用程序启动时进行。

检查是否有其他中间件干扰路由配置:确保没有其他中间件在app.UseRouting()之后干扰了路由配置。请确保没有其他中间件修改了路由选项。

确保LowercaseUrls和LowercaseQueryStrings设置正确:在你的代码中,你已经设置了这些选项为true,这是正确的。确保没有其他地方覆盖了这些设置。

检查是否使用了URL生成器:如果你在应用程序中使用了URL生成器来生成URL,确保它们也遵循统一小写的规则。通常,ABP框架内部会使用URL生成器来生成路由链接。

考虑使用URL重写中间件:如果你遇到了路由问题,可以尝试使用ASP.NET Core的URL重写中间件来统一小写URL。你可以在Startup.cs文件的Configure方法中添加以下代码:

csharp
Copy code
app.UseRewriter(new RewriteOptions()
.Add(RedirectToLowerCaseRule.LowercaseRule));
请注意,上述代码中的RedirectToLowerCaseRule是一个自定义的URL重写规则,它会将URL强制转换为小写。你可以根据需要自定义这个规则。

最后,请确保你的ABP应用程序已经使用了ASP.NET Core 3.1或更高版本,因为某些功能可能需要在特定版本中才能正常工作。如果仍然存在问题,可以尝试在ABP社区或GitHub存储库上寻求帮助,以获取更具体的支持。

收获园豆:10
Technologyforgood | 大侠五级 |园豆:5992 | 2023-09-03 22:23

好的,非常感谢

小手冰凉tel | 园豆:73 (初学一级) | 2023-09-04 09:24
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册