我需要做一个链接,把我重新定义到一个地方,另一个路径值。
示例
来自Global.asax的路由规则
routes.MapRoute(
"News", // Route name
"{lang}/{controller}/{action}/page-{page}", // URL with parameters
new { lang = "pl", controller = "News", action = "Index" } // Parameter defaults
);页面,我是
/pl/News/Index/page-6我想要创建到的链接
/en/News/Index/page-6所以我想改变lang参数。有什么简单的方法吗?
发布于 2012-06-26 21:42:36
首先,您需要改变您的路线,以反映如下内容:
routes.MapRoute("AnyLangRoute", "{lang}/{controller}/{action]/page-{page}", new { controller = "News", action = "Index" });您希望从参数列表中删除lang属性,但将其保存在URL中。
然后,您将希望使用
filterContext.RouteData.Values["lang"].ToString()若要从routeData获取{lang}值,请执行以下操作。(注意: filterContext是一个ControllerContext对象)。
因此,URL为:
/en/News/Index/page-6将具有"lang“值:en
您可以使用该值使用全局筛选器或类似的方法将线程更改为适当的语言(请参阅ActionFilterAttribute --如果您想了解更多信息)。
这一切都是从记忆中得到的,但希望它能指引你走向正确的方向。
https://stackoverflow.com/questions/11211646
复制相似问题