我想学习如何在ASP.NET MVC中创建“捕获其余”路径?
我需要采用格式化的URL,读取一些数据到它的值,并获取链接的其余部分并将其保存到某个变量,以便稍后我可以读取它并生成链接。
blog.mydomain.com/linker/process/2612010/2828/en/articles/october/asking-the-overflow/madd.aspx
或此链接:blog.mydomain.com/linker/process/2612010/2828/en/articles/october/read.aspx?m=828
读起来像:
memberid = 2612010
会员= 2828
language = en
restofurl =“articles / october / read.aspx?m = 828”
或
blog.mydomain.com/linker/process/2612010/2828/en/articles
于:
memberid = 2612010
会员= 2828
language = en
restofurl =“articles”
我考虑过这样的事情:
routes.MapRoute(
"Linker", // Route name
"Linker/Process/{memberid}/{memberrating}/{lang}/{*other}", // ULR with parameters
new { controller = "Linker", action = "Process", lang = "en", other = UrlParameter.Optional}
);
此路由正确地获取链接的其余部分,但在以下结尾处省略URL参数: blog.mydomain.com/linker/process/2612010/2828/en/articles/october/read.aspx?m=828
仅显示
的物品/ 10月/ read.aspx
作为“restofurl”的价值
我不需要经典网址获取params assignet到任何东西,只是希望它们是 restofurl 变量的一部分。
答案 0 :(得分:1)
我会自己回答这个问题。
var restofurl =
String.Format("{0}?{1}", RouteData.Values["other"], Request.QueryString);
将有效地构建正确的URL。如果您碰巧找到了“更干净/更好”的方式,请发帖。