2010-05-26 114 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