У меня есть культура сайта в URL-адресах, подобных этому:
routes.MapRoute(
"Default",
"{language}/{controller}/{action}/{id}",
languageDefaults,
languageConstraints)
И он работает как шарм с небольшой помощью пользовательского MvcHttpHandler, который устанавливает культуру пользовательского интерфейса текущего потока для каждого запроса на основе значения маршрута.Моя проблема в том, как автоматически добавить значение языкового маршрута из текущего запроса ко всем исходящим ссылкам?Например, когда запрашивается страница / 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-помощников для всего?