一个ASP.net MVC url路由有问题。我创建了这条路线(它是我的RegisterRoutes方法中的第一条路线:
routes.MapRoute(
"Activate",
"Account/Activate/{username}/{key}",
new { controller = "Account", action = "Activate", username = "", key = "" },
new { username = @"([a-z0-9\.-]+)", key = @"([a-z0-9\.-]+)" }
);
但是当我试图像这样去网址时
http://localhost:63779/acount/activate/test/hLMqWJrwp1dK5xTqbGkP5kzUNQ4
它返回404错误
(使用UrlParameter.Optional我得到了相同的结果)
答案 0 :(得分:1)
问题是您的正则表达式不正确。使用以下内容:
routes.MapRoute(
"Activate",
"Account/Activate/{username}/{key}",
new { controller = "Account", action = "Activate" },
new { username = @"^[\w\.]+$", key = @"^[\w\.]+$" }
);
显示的正则表达式将匹配包含任何单词字符的字符串(\ w与[A-Za-z0-9_]相同)或点,没有空格或其他字符。
<强>更新强>
在测试路线并将其复制到我的答案后,我忘了将控制器值更改为“帐户”。我已经更新了上面的路线。