使用id属性asp.net mvc 5更改语言URL

时间:2017-01-09 09:39:40

标签: c# asp.net-mvc routing localization asp.net-mvc-routing

我正在使用2种语言的网站 它对我有用,但是当我改变当前视图的语言时出现问题,当前视图的语言发生了变化,当前视图的语言发生了变化,当前视图重新加载但没有参数,它是一个空值
如何在更改语言时保留参数? 我搜索了很多时间,但我没有发现任何可以帮助我的事情

这就是我所做的

在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" }
             );    
        }

in html

@Html.ActionLink(
                 "Arabic",
                 ViewContext.RouteData.Values["action"].ToString(),
                 ViewContext.RouteData.Values["controller"].ToString(),
                 new { language = "ar" }, 
                 null)

1 个答案:

答案 0 :(得分:0)

用" id"更改语言网址更改中的属性:

@Html.ActionLink("Arabic",ViewContext.RouteData.Values["action"].ToString(), ViewContext.RouteData.Values["controller"].ToString(), new { language = "ar" }, null)

为:

@Html.ActionLink("Arabic",ViewContext.RouteData.Values["action"].ToString(), ViewContext.RouteData.Values["controller"].ToString(), new { language = "ar", id = ViewContext.RouteData.Values["id"]?.ToString() }, null)