Asp.net core mvc 更改语言后出现路由错误

Asp.net core mvc 更改语言后出现路由错误,asp.net-core-mvc,Asp.net Core Mvc,我有一个asp.net core 1.1 mvc应用程序,在更改语言后出现路由错误(404)。它在测试模式(localhost)下工作正常,但在生产模式(IIS)下工作不正常 这是我单击语言更改按钮之前的url 我的视图代码如下所示: @using Microsoft.AspNetCore.Http.Features @using Microsoft.AspNetCore.Localization @using Microsoft.Extensions.Options @using Micro

我有一个asp.net core 1.1 mvc应用程序,在更改语言后出现路由错误(404)。它在测试模式(localhost)下工作正常,但在生产模式(IIS)下工作不正常

这是我单击语言更改按钮之前的url

我的视图代码如下所示:

@using Microsoft.AspNetCore.Http.Features
@using Microsoft.AspNetCore.Localization
@using Microsoft.Extensions.Options
@using Microsoft.AspNetCore.Mvc.Localization
@inject IViewLocalizer Localizer
@inject IOptions<RequestLocalizationOptions> LocOptions

@{
    var requestCulture = Context.Features.Get<IRequestCultureFeature>();
    var cultureItems = LocOptions.Value.SupportedUICultures
        .Select(c => new SelectListItem { Value = c.Name, Text = c.DisplayName })
        .ToList();
}

<div title="@Localizer["Request culture provider:"] @requestCulture?.Provider?.GetType().Name">
    <form id="selectLanguage" asp-controller="ChangeLanguage"
          asp-action="SetLanguage" asp-route-returnUrl="@Context.Request.Path"
          method="post" class="form-horizontal" role="form">
        @Localizer["Language"] <select name="culture"
                                        onchange="this.form.submit();"
                                        asp-for="@requestCulture.RequestCulture.UICulture.Name" asp-items="cultureItems"></select>
    </form>
</div>
   public class ChangeLanguageController : Controller
    {
        [HttpPost]
        public IActionResult SetLanguage(string culture,                                          string returnUrl)
        {
            Response.Cookies.Append(
                CookieRequestCultureProvider.DefaultCookieName,
                CookieRequestCultureProvider.MakeCookieValue(new RequestCulture(culture)),
                new CookieOptions { Expires = DateTimeOffset.UtcNow.AddYears(1) }
            );
            ViewBag.Er = returnUrl;
            return LocalRedirect(returnUrl);
        }
    }
    app.UseMvc(routes =>
    {
        routes.MapRoute(
            name: "default",
            template: "{controller=Home}/{action=Index}/{id?}");
    });
会议结束后: returnlocalredirect(returnUrl) 我的Url如下所示-我得到一个错误:

我的地图路线如下所示:

@using Microsoft.AspNetCore.Http.Features
@using Microsoft.AspNetCore.Localization
@using Microsoft.Extensions.Options
@using Microsoft.AspNetCore.Mvc.Localization
@inject IViewLocalizer Localizer
@inject IOptions<RequestLocalizationOptions> LocOptions

@{
    var requestCulture = Context.Features.Get<IRequestCultureFeature>();
    var cultureItems = LocOptions.Value.SupportedUICultures
        .Select(c => new SelectListItem { Value = c.Name, Text = c.DisplayName })
        .ToList();
}

<div title="@Localizer["Request culture provider:"] @requestCulture?.Provider?.GetType().Name">
    <form id="selectLanguage" asp-controller="ChangeLanguage"
          asp-action="SetLanguage" asp-route-returnUrl="@Context.Request.Path"
          method="post" class="form-horizontal" role="form">
        @Localizer["Language"] <select name="culture"
                                        onchange="this.form.submit();"
                                        asp-for="@requestCulture.RequestCulture.UICulture.Name" asp-items="cultureItems"></select>
    </form>
</div>
   public class ChangeLanguageController : Controller
    {
        [HttpPost]
        public IActionResult SetLanguage(string culture,                                          string returnUrl)
        {
            Response.Cookies.Append(
                CookieRequestCultureProvider.DefaultCookieName,
                CookieRequestCultureProvider.MakeCookieValue(new RequestCulture(culture)),
                new CookieOptions { Expires = DateTimeOffset.UtcNow.AddYears(1) }
            );
            ViewBag.Er = returnUrl;
            return LocalRedirect(returnUrl);
        }
    }
    app.UseMvc(routes =>
    {
        routes.MapRoute(
            name: "default",
            template: "{controller=Home}/{action=Index}/{id?}");
    });
有什么问题吗? 谢谢