Asp.net mvc 启用路由本地化,多次点击主索引控制器

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

我正在构建一个.NETCore3.1.7Web应用程序。此应用程序应该是多语言的。我想有URL的喜欢或

为此,我在startup ConfigureServices方法中添加了以下代码:

// 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?}");
});