Я работаю на веб-сайте с 2-мя языками Он работает для меня, но проблема возникает, когда я меняю язык текущего вида, который имеет параметры, язык текущий вид изменен и текущий просмотр перезагружен, но без параметров, это нулевое значение
как сохранить параметры при изменении языка? Я искал много времени, но я не нашел что-нибудь может помочь мнеИзменить язык url с атрибутом id asp.net mvc 5
это то, что я сделал
в RouteConfig.cs
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{language}/{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional, language = "en" }
);
}
в HTML
@Html.ActionLink(
"Arabic",
ViewContext.RouteData.Values["action"].ToString(),
ViewContext.RouteData.Values["controller"].ToString(),
new { language = "ar" },
null)
у вас есть культура токенов и некоторые помощники? если так поставить культуру перед маршрутом new {culture = CultureHelper.GetDefaultCulture(), контроллер ... –
нет у меня не было маркера культуры –
Ваша проблема скорее всего в том, что вы сделали свой языковой параметр необязательным 'language =" en " '. Для сценария языка/заданного языка по умолчанию должен быть второй маршрут (если это то, что вы пытаетесь сделать). Если вы передадите контроллер в качестве первого параметра сейчас, он окажется в значении маршрута языка. См. [Этот ответ] (http://stackoverflow.com/a/32839796/181087). – NightOwl888