我有这条路线:
routes.MapRoute(
name: "Task",
url: "Projects/{projectID}/Tasks/{action}/{id}",
defaults: new { controller = "Tasks", action = "Index", id = UrlParameter.Optional }
);
想创建一个链接:
@Html.ActionLink("Add task", "Create", "Tasks", new { projectID = 5 })
但我得到(我在项目索引视图中):
http://localhost:25814/Projects/Create?Length=5
当我使用
@Html.ActionLink("Add task", "Create", new { controller = "Tasks", projectID = 5 })
我得到正确的网址:
http://localhost:25814/Projects/5/Tasks/Create
我不明白为什么会有区别...具有此签名的辅助方法:
(string linkText, string actionName, string controllerName, object routeValues)
存在!那么为什么我不能使用更简单的方法呢?