2010-05-26 115 views
2

我在阅读关于URL路由的文章How to: Define Routes for Web Forms Applications,这里有一些我不明白的例子。如果你看看下面的例子中提供,URL路由文档问题

routes.MapPageRoute("", "SalesReport/{locale}/{year}/{*queryvalues}", "~/sales.aspx"); 

专门在

"SalesReport/{locale}/{year}/{*queryvalues}" 

为什么queryvalues在它前面的星号本地化和一年不?

回答

0

*表示“全部捕获”参数,它基本上与请求的URL中的所有其他参数匹配。

URL中的“year”参数后面的所有内容都将被转储到queryvalues参数中。因此,例如,在URL

http://whatever/SalesReport/canada/1999/x=1 

会给你填入"x=1"一个queryvalues变量。但它也将匹配URL

http://whatever/SalesReport/canada/1999/x=1/y=2/z=3 

和queryvalues将"x=1/y=2/z=3"填充。

您的路线中只能有一个全部参数,它必须是最后一个参数。

+0

好吧,我明白了。因此,区域设置和年份将参数传递到sales.aspx到查询字符串中,如sales.aspx?locale = foo&year = 2010 – 2010-05-26 20:25:52

+0

我并不是很熟悉webforms如何处理路由令牌,但我想这可能会发生什么,是。 – womp 2010-05-26 20:31:12

+0

我明白了。感谢您的解释。 – 2010-05-26 20:35:29