我有一个ASP.NET 5网站,其中文化定义在链接中。例如:
http://localhost:8080/nl/customers
http://localhost:8080/fr/customers
http://localhost:8080/en/customers
我需要实现一个按钮来改变语言。是否有一种无需解析url并自己添加语言前缀的方法来做到这一点?
发布于 2016-05-09 08:39:34
您可以创建帮助方法。
public static class UrlHelperExtensions
{
public static string RouteToCurrent(this UrlHelper urlHelper, RouteData routeData, object routeValues)
{
// Create an IDictionary<string, object>
var requestRouteData = new RouteValueDictionary(routeData.Values);
var replaceValues = new RouteValueDictionary(routeValues);
foreach (var value in replaceValues)
{
if (requestRouteData.ContainsKey(value.Key))
{
requestRouteData[value.Key] = value.Value;
}
else
{
requestRouteData.Add(value.Key, value.Value);
}
}
return urlHelper.RouteUrl(requestRouteData);
}
}作为参数,您传递当前的路由数据和一个匿名对象,其中包含要更改的键和值。
@foreach (var lang in Model.LanguageList)
{
<li>
<a href="@Url.RouteToCurrent(ViewContext.RouteData, new {locale = lang})">@lang</a>
</li>
}https://stackoverflow.com/questions/37110758
复制相似问题