在我的AccountController类中,我有以下内容:
public ActionResult Verification(string userGuid)
{
Debug.WriteLine(userGuid);
...
在我的global.asax中,我有:
routes.MapRoute(
"AccountVerification",
"{controller}/{action}/{userGuid}",
new { controller = "Account", action = "Verification", userGuid = UrlParameter.Optional }
);
当我去http://localhost/Account/Verification/123时...没有调试输出......它没有识别参数 - 这是我的问题。不确定我错过了什么。
我确实希望这个参数是可选的......如果没有设置,那么我会返回一个不同的视图。
修改:
当我在Verification函数中放置Debug.WriteLine("hello world");
时,它会输出它,以便路由看起来转到正确的函数。
再次编辑: 默认控制器仍然存在,但我认为它不会触及该路由,因为它使用不同的控制器/操作
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
答案 0 :(得分:4)
您给我们的路线应该匹配 - 您在上面定义了哪些其他路线?它可能被不同的路线拾取。
答案 1 :(得分:1)
RouteDegguer将有助于确定正在挑选的路线。
答案 2 :(得分:0)
将此定义放在顶部,看看它是否仍然无效。调试路径的第一步