我遇到Html.ActionLink的问题,没有给我我期待的链接。
这是我的路线:
routes.MapRoute(
"KnownCustomer", // Route name
"{controller}/{action}/{custId}/{projId}", // URL with parameters
new { controller = "Home", action = "Index" }, // Parameter defaults
new { custId = @"\d+", projId = @"\d+" }
);
这是我对Html.ActionLink()“
的调用@Html.ActionLink("Create New", "Create", "Conflict")
以下是ActionLink所在页面的URL: http://localhost:1283/Conflict/Index/1200/300 这是调用上面的Html.ActionLink()的结果 http://localhost:1283/Conflict/Create
呼叫不应该包含其他路由参数吗?我所期待的是 http://localhost:1283/Conflict/Create/1200/300
我是否需要将custId和projId传递给View并使用重载来手动提供值?
答案 0 :(得分:11)
您没有指定操作链接应该包含任何参数,在这种情况下,它是操作的直接URL。您需要包含参数,即
@Html.ActionLink("Create New", "Create", "Conflict", new { custID = Model.custID, projID = Model.projID }, null)