我在 MVC4 中有一个自定义路由设置,它允许以下模式:
文化/控制器/动作/id
除了默认值:
控制器/动作/ID
我想向我的页面添加一个显示可用文化的菜单。当用户单击一种文化时,应该将“文化”的标识符插入/更新到 URL 中吗?
在 MVC4 中像这样修改路由(url)的最佳方法是什么?
我在 MVC4 中有一个自定义路由设置,它允许以下模式:
文化/控制器/动作/id
除了默认值:
控制器/动作/ID
我想向我的页面添加一个显示可用文化的菜单。当用户单击一种文化时,应该将“文化”的标识符插入/更新到 URL 中吗?
在 MVC4 中像这样修改路由(url)的最佳方法是什么?
Make an HtmlHelper
public static class UrlExtensions
{
public static MvcHtmlString CultureUrl(this HtmlHelper htmlHelper, string cultureName)
{
RequestContext requestContext = htmlHelper.ViewContext.RequestContext;
RouteValueDictionary values = requestContext.RouteData.Values;
var data = new
{
culture = cultureName ?? Thread.CurrentThread.CurrentUICulture.Name,
controller = values["controller"],
action = values["action"],
id = values["id"]
};
UrlHelper urlHelper = new UrlHelper(requestContext);
string url = urlHelper.RouteUrl(data);
return MvcHtmlString.Create(url);
}
}
Then use it in the view:
<%foreach(var culture in Model.cultures){%>
<%=Html.CultureUrl(culture)%>
<%}%>