gpt4 book ai didi

asp.net - URL 中的 MapPageRoute 附加参数

转载 作者:行者123 更新时间:2023-12-02 08:48:54 26 4
gpt4 key购买 nike

我正在使用 MapPageRoute (ASP.NET 4) 来支持多语言网站中的友好 URL。

我希望能够传递附加参数以及 MapPageRoute 中定义的参数。

在上面的例子中,我需要根据URL来判断请求的语言:(如果是“Accessories”,页面应该是英文的,如果是“Accessoires”——页面应该是法语的):

 routes.MapPageRoute(
"Accessory fr",
"Accessoires/{accessory_name}",
"~/Accessory.aspx?lang=fr"
);

routes.MapPageRoute(
"Accessory en",
"Accessories/{accessory_name}",
"~/Accessory.aspx?lang=en"
);

所以,请求的附件名称没有问题,它是使用 Page.RouteData.Values["accessory_name"] 读取的,但是我如何读取 lang参数 ?

我不能使用 Request["lang"] 因为它没有给我请求的结果。不知何故,?lang=xx 没有被采用。

任何其他想法,假设未在 URL 中明确找到此参数,我如何传递附加参数?

最佳答案

如果您想要将额外的参数传递给您的路由处理程序(页面),您可以设置 DataTokens 属性,

Route reportRoute = new Route("Accessoires/{accessory_name}", new PageRouteHandler("~/Accessory.aspx"));
reportRoute.DataTokens = new RouteValueDictionary { { "lang", "en" } };
routes.Add(reportRoute);

您可以在您的处理程序(页面)中访问它,

string lang = (string)Page.RouteData.DataTokens["lang"];

检查msdn, Route.DataTokens Property

关于asp.net - URL 中的 MapPageRoute 附加参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10070337/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com