【发布时间】:2011-06-30 22:16:12
【问题描述】:
我的网址中有这样的网站文化:
routes.MapRoute(
"Default",
"{language}/{controller}/{action}/{id}",
languageDefaults,
languageConstraints)
在自定义 MvcHttpHandler 的帮助下,它就像一个魅力,它根据路由值在每个请求上设置当前线程的 UI 文化。我的问题是如何自动将当前请求中的语言路由值添加到所有传出链接?例如。当页面 /EN/Foo/Bar 被请求时,我想要这个
<%=Html.ActionLink(
"example link",
MVC.Home.Index()) %>
要自动生成与此相同的结果:
<%=Html.ActionLink(
"example link",
MVC.Home.Index()
.AddRouteValue(
"language",
this.ViewContext.RouteData.Values["language"]) %>
当然,对于 BeginForm() 等所有其他帮助程序也是如此。在我当前的代码库中,已经有超过 1000 次使用这些帮助程序,并且每次都需要 .AddRouteValue 非常脆弱,因为一些开发人员会忘记100% 肯定地使用它。
我希望唯一的解决方案不是为所有内容创建自定义 Html 助手?
【问题讨论】:
标签: asp.net asp.net-mvc asp.net-mvc-2 asp.net-mvc-routing