Asp.net mvc 启用路由本地化,多次点击主索引控制器
我正在构建一个.NETCore3.1.7Web应用程序。此应用程序应该是多语言的。我想有URL的喜欢或 为此,我在startup ConfigureServices方法中添加了以下代码:Asp.net mvc 启用路由本地化,多次点击主索引控制器,asp.net-mvc,.net-core,Asp.net Mvc,.net Core,我正在构建一个.NETCore3.1.7Web应用程序。此应用程序应该是多语言的。我想有URL的喜欢或 为此,我在startup ConfigureServices方法中添加了以下代码: // Add localization using one general localization file services.AddSingleton<SharedLocalizationService>(); // Add route localization services.AddLoc
// Add localization using one general localization file
services.AddSingleton<SharedLocalizationService>();
// Add route localization
services.AddLocalization(options => options.ResourcesPath = "Resources");
services.Configure<RequestLocalizationOptions>(options =>
{
var supportedCultures = new[]
{
new CultureInfo("nl"),
new CultureInfo("en"),
new CultureInfo("de"),
new CultureInfo("fr"),
new CultureInfo("pl"),
new CultureInfo("zh")
};
options.SupportedCultures = supportedCultures;
options.SupportedUICultures = supportedCultures;
options.RequestCultureProviders.Insert(0, new RouteDataRequestCultureProvider());
});
因此,我在端点配置中添加了{culture=nl}部分
当我在HomeControllers的Index方法中设置断点时,无论导航到哪个页面,每次都会(甚至多次)命中该方法
我有这个问题在多个解决方案现在似乎
注意:当我离开端点配置中的{culture=nl}部分时,我的本地化不再工作,但是调用HomeController的索引方法的奇怪行为消失了
注2:从上面的示例中可以看到,我还需要启用身份验证
**编辑**
这可能与调用UseRouting、UseRequestLocalization、UseAuthorization和UseAuthentication方法的顺序有关。更改这些方法的顺序时,有时不再调用HomeController的索引方法,但身份验证不再起作用,反之亦然
// Redirect to HTTPS
app.UseHttpsRedirection();
// Use static files
app.UseStaticFiles();
// Use routing
app.UseRouting();
// Use request localization
app.UseRequestLocalization();
// Use authorization
app.UseAuthorization();
// Use authentication
app.UseAuthentication();
// Use endpoints
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "administrator",
pattern: "{culture=nl}/{area:exists}/{controller=Home}/{action=Index}/{id?}");
endpoints.MapControllerRoute(
name: "default",
pattern: "{culture=nl}/{controller=Home}/{action=Index}/{id?}");
});