Asp.net mvc 4 Routelink在区域设置更改时生成不同的URL
我的网站可以用荷兰语、英语和德语阅读。用户可以通过单击页面顶部的标志来选择他们喜欢的语言。链接的呈现方式如下所示:Asp.net mvc 4 Routelink在区域设置更改时生成不同的URL,asp.net-mvc-4,localization,asp.net-mvc-routing,Asp.net Mvc 4,Localization,Asp.net Mvc Routing,我的网站可以用荷兰语、英语和德语阅读。用户可以通过单击页面顶部的标志来选择他们喜欢的语言。链接的呈现方式如下所示: <ul class="nav navbar-nav navbar-right flag"> @if (Request.IsAuthenticated) { if (model.AvailableLanguages.Contains("NL")) { &
<ul class="nav navbar-nav navbar-right flag">
@if (Request.IsAuthenticated) {
if (model.AvailableLanguages.Contains("NL")) {
<li class="flagNL" title="Nederlands">@Html.RouteLink(" ", new { locale = "nl-NL" })</li>
}
if (model.AvailableLanguages.Contains("DE")) {
<li class="flagDE" title="Deutsch">@Html.RouteLink(" ", new { locale = "de-DE" })</li>
}
if (model.AvailableLanguages.Contains("EN")) {
<li class="flagGB" title="English">@Html.RouteLink(" ", new { locale = "en-GB" })</li>
}
}
else {
var qs = (!string.IsNullOrEmpty(Request.QueryString.ToString()) && Request.QueryString["ReturnUrl"] != null) ? Request.QueryString["ReturnUrl"] : string.Empty;
if (model.AvailableLanguages.Contains("NL")) {
<li class="flagNL" title="Nederlands">@Html.RouteLink(" ", new { locale = "nl-NL", ReturnUrl = Server.UrlDecode(qs) })</li>
}
if (model.AvailableLanguages.Contains("DE")) {
<li class="flagDE" title="Deutsch">@Html.RouteLink(" ", new { locale = "de-DE", ReturnUrl = Server.UrlDecode(qs) })</li>
}
if (model.AvailableLanguages.Contains("EN")) {
<li class="flagGB" title="English">@Html.RouteLink(" ", new { locale = "en-GB", ReturnUrl = Server.UrlDecode(qs) })</li>
}
}
</ul>
请发布您的路由表配置。如果不知道路由是如何配置的,则无法回答有关路由的问题。请编辑到问题@nightowl888查看。
public static void RegisterRoutes(RouteCollection routes) {
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("favicon.ico");
State state = new State();
routes.MapRoute(
name: "Localization",
url: "{locale}/{controller}/{action}/{id}",
defaults: new { locale = "nl-NL", controller = "Home", action = "Index", id = UrlParameter.Optional },
constraints: new { locale = "[a-zA-Z]{2}-[a-zA-Z]{2}" }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}