首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使重写到同一位置的链接更改1参数?

如何使重写到同一位置的链接更改1参数?
EN

Stack Overflow用户
提问于 2012-06-26 16:18:29
回答 1查看 103关注 0票数 0

我需要做一个链接,把我重新定义到一个地方,另一个路径值。

示例

来自Global.asax路由规则

代码语言:javascript
复制
routes.MapRoute(
            "News", // Route name
            "{lang}/{controller}/{action}/page-{page}", // URL with parameters
            new { lang = "pl", controller = "News", action = "Index" } // Parameter defaults
        );

页面,我是

代码语言:javascript
复制
/pl/News/Index/page-6

我想要创建到的链接

代码语言:javascript
复制
/en/News/Index/page-6

所以我想改变lang参数。有什么简单的方法吗?

EN

回答 1

Stack Overflow用户

发布于 2012-06-26 21:42:36

首先,您需要改变您的路线,以反映如下内容:

代码语言:javascript
复制
routes.MapRoute("AnyLangRoute", "{lang}/{controller}/{action]/page-{page}", new { controller = "News", action = "Index" });

您希望从参数列表中删除lang属性,但将其保存在URL中。

然后,您将希望使用

代码语言:javascript
复制
filterContext.RouteData.Values["lang"].ToString()

若要从routeData获取{lang}值,请执行以下操作。(注意: filterContext是一个ControllerContext对象)。

因此,URL为:

代码语言:javascript
复制
/en/News/Index/page-6

将具有"lang“值:en

您可以使用该值使用全局筛选器或类似的方法将线程更改为适当的语言(请参阅ActionFilterAttribute --如果您想了解更多信息)。

这一切都是从记忆中得到的,但希望它能指引你走向正确的方向。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11211646

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档