2011-10-16 33 views
0

a ASP.net MVC url路由有問題。我創建了這條路線(這是我的RegisterRoutes方法,第一條路線:具有兩個變量的URL路由不起作用

routes.MapRoute(
    "Activate", 
    "Account/Activate/{username}/{key}", 
    new { controller = "Account", action = "Activate", username = "", key = "" }, 
    new { username = @"([a-z0-9\.-]+)", key = @"([a-z0-9\.-]+)" } 
); 

但是當我嘗試去TU網址是這樣的:

http://localhost:63779/acount/activate/test/hLMqWJrwp1dK5xTqbGkP5kzUNQ4 

返回404錯誤

(帶UrlParameter.Optional我得到了相同的結果)

回答

1

問題是你的正則表達式不正確。使用以下內容:

routes.MapRoute(
    "Activate", 
    "Account/Activate/{username}/{key}", 
    new { controller = "Account", action = "Activate" }, 
    new { username = @"^[\w\.]+$", key = @"^[\w\.]+$" } 
); 

顯示的正則表達式將匹配包含任何單詞字符(\ w與[A-Za-z0-9_]相同)或沒有空格或其他字符的點的字符串。

UPDATE

測試路線,並將其複製到我的回答後,我忘了改控制器值「帳戶」。我已經更新了上面的路線。

+0

感謝您的提示,但它仍然返回404.我嘗試了正確的RegEx,但仍然是相同的結果。 – PavelKumpan

+0

我注意到,我把錯誤的控制器值放在路由中。我更新了我的答案。請用正確的控制器值檢查它。 – counsellorben

+0

謝謝,我真的很盲目。當我的帳戶在我的路線和帳戶在URL中時,我怎麼可以工作。 – PavelKumpan