在我的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