我在我的ASP.NET MVC應用程序只有一個途徑:如何在包含斜槓(/)時創建與參數匹配的路由?
routes.MapRoute(
"Post",
"post/{url}",
new { controller = "Blog", action = "Post" }
);
當我去/post/MyTestBlahBlah
它正確地匹配,並調用Blog.Post(URL)。
然而,當我去/post/2010/03/MyTestBlahBlah
我得到一個404
如何使即使有在他們斜線路由匹配的網址?
注:我的網址是不固定的AS /年/月/後,他們可以在任何格式,這就是爲什麼我想匹配所有網址。我需要它捕獲並傳遞到控制器(而不是使用「*」)來幫助測試 - 我不希望Controller從Response對象讀取URL。
我的網址沒有固定在這種格式,這就是爲什麼我需要匹配他們所有。我在開始時並沒有真正擁有「/ post /」,但我認爲增加這個可以避免人們告訴我使用「*」,因爲我需要將URL傳遞給Action。 – 2011-05-04 17:46:59
抓住所有路線的問題是他們傾向於打破許多具體的事情。傳遞整個url的目的是什麼,利用路由系統將url部分分離爲相關參數是沒有意義的。 – 2011-05-04 17:49:08
我利用了路由系統 - 我將有多個路由(例如/ archive/{year}/{month}和/ {page}),但是我的帖子可以使用任何其他格式,這意味着他們必須成爲一個catchall(並且將是最後的路線)。 – 2011-05-04 17:54:25