在我的AccountController类我有以下几点:MVC 2.0路由问题 - URL参数不承认
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 .. 。theres没有调试输出...它不能识别参数 - 这是我的问题。不知道我错过了什么。
我确实希望这个参数是可选的...如果它没有设置,那么我返回一个不同的视图。
编辑: 当我在验证功能放置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
);
不知道如何将其他路线拾起。 Theres在我的AccountController中没有使用名称Verification定义其他操作。我可以确认它正在打击我的Verification功能,只是为userGuid输出一个空字符串。 – 2010-06-29 15:55:57
您是否已经在{controller}/{action}/{id}中保留了默认路由,并且会将您的“123”映射到“id”参数?如果是这样,因为它没有被定义为你的方法的一个参数,它只会在路由数据中传入“123”并将userGuid留空。 – 2010-06-29 16:00:56
是的,默认的也在那里......但是由于它的定义使用了不同的控制器(主页)和动作(索引),我以为它不会使用它。 – 2010-06-29 16:05:54