Ran*_*nch 2 asp.net url-routing
我正在使用MapPageRoute(ASP.NET 4)来支持多语言网站中的友好URL.
我希望能够传递其他参数以及MapPageRoute中定义的参数.
在上面的示例中,我需要根据URL确定所请求的语言:(如果是"附件",页面应该是英文,如果是"Accessoires" - 页面应该是法语):
routes.MapPageRoute(
"Accessory fr",
"Accessoires/{accessory_name}",
"~/Accessory.aspx?lang=fr"
);
routes.MapPageRoute(
"Accessory en",
"Accessories/{accessory_name}",
"~/Accessory.aspx?lang=en"
);
Run Code Online (Sandbox Code Playgroud)
因此,请求的附件名称没有问题,可以通过使用来读取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);
Run Code Online (Sandbox Code Playgroud)
你可以在你的处理程序(页面)中访问它,
string lang = (string)Page.RouteData.DataTokens["lang"];
Run Code Online (Sandbox Code Playgroud)
检查msdn, Route.DataTokens属性
| 归档时间: |
|
| 查看次数: |
5712 次 |
| 最近记录: |