我有一個「項目」控制器和一個「儀表板」操作,它採用名爲「accountID」的參數。MVC3:爲什麼Html.Action不會生成預期的URL
public ActionResult Dashboard(String accountID)
{
return View();
}
我有一個路徑定義如下:
routes.MapRoute(
"ProjectsHome",
"{accountID}/projects",
new { controller = "Projects", action = "Dashboard" }
);
的想法是有像/ 1111 /項目中1111表示的帳戶ID URL。該URL將執行項目控制器的儀表板操作。
的問題,我現在面臨的是@Html.ActionLink("Projects", "Dashboard", "Projects", new { accountID = "1111" }, null)
產生像/項目/儀表板?一個URL帳戶ID = 1111,我期待像/ 1111 /項目
我的解決方法是使用@Url.RouteUrl("ProjectsHome", new { accountID = "1111"})
,但我想知道爲什麼Html.ActionLink不會選擇我定義的路由並相應地設置URL的格式?
另一個有趣的事實是,在其中一個控制器的代碼中,我有像return RedirectToAction("Dashboard", "Projects", new { accountID = newAccount.ID });
這樣的東西,它構建了我所期望的URL。
注:除通用「全部捕獲」之外,我沒有定義其他路由。我使用ASP.NET MVC3。
不確定發生了什麼,但我不能再現它。 –