Asp.net 更改基于链接的网站文化
我有一个ASP.NET 5网站,链接中定义了文化。例如:Asp.net 更改基于链接的网站文化,asp.net,asp.net-mvc-5,Asp.net,Asp.net Mvc 5,我有一个ASP.NET 5网站,链接中定义了文化。例如: 我需要实现一个按钮来更改语言。有没有一种方法可以做到这一点,而不必解析url并自己添加语言前缀?您可以创建一个helper方法 public static class UrlHelperExtensions { public static string RouteToCurrent(this UrlHelper urlHelper, RouteData routeData, object routeValues) {
我需要实现一个按钮来更改语言。有没有一种方法可以做到这一点,而不必解析url并自己添加语言前缀?您可以创建一个helper方法
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);
}
}
公共静态类UrlHelperExtensions
{
公共静态字符串RouteToCurrent(此UrlHelper UrlHelper、RouteData RouteData、对象RouteValue)
{
//创建一个IDictionary
var requestRouteData=新的RouteValueDictionary(routeData.Values);
var replaceValues=新的RouteValueDictionary(routeValues);
foreach(replaceValues中的var值)
{
if(requestRouteData.ContainsKey(value.Key))
{
requestRouteData[value.Key]=value.value;
}
其他的
{
requestRouteData.Add(value.Key,value.value);
}
}
返回urlHelper.RouteUrl(requestRouteData);
}
}
作为参数,传递当前RoutedData和匿名对象,其中包含要更改的键和值
@foreach (var lang in Model.LanguageList)
{
<li>
<a href="@Url.RouteToCurrent(ViewContext.RouteData, new {locale = lang})">@lang</a>
</li>
}
@foreach(Model.LanguageList中的var lang)
{
}