我正在阅读How to: Define Routes for Web Forms Applications处的网址路由,这个例子中我有些不明白。如果你看下面提供的例子,
routes.MapPageRoute("", "SalesReport/{locale}/{year}/{*queryvalues}", "~/sales.aspx");
具体在
"SalesReport/{locale}/{year}/{*queryvalues}"
为什么查询值前面有一个星号,而语言环境和年份没有?
答案 0 :(得分:0)
*表示“catch all”参数,它基本上与请求的URL中的其他所有内容相匹配。
URL中“year”参数之后的所有内容都将被转储到queryvalues参数中。例如,URL
http://whatever/SalesReport/canada/1999/x=1
将为您提供一个填充了"x=1"
的queryvalues变量。但它也会匹配网址
http://whatever/SalesReport/canada/1999/x=1/y=2/z=3
和查询值将填充"x=1/y=2/z=3"
。
您的路线中只能有一个全能参数,而且必须是最终参数。