Html.ActionLink不包含参数的问题(MVC3)

时间:2010-12-17 16:08:24

标签: asp.net-mvc asp.net-mvc-3

我遇到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并使用重载来手动提供值?

1 个答案:

答案 0 :(得分:11)

您没有指定操作链接应该包含任何参数,在这种情况下,它是操作的直接URL。您需要包含参数,即

@Html.ActionLink("Create New", "Create", "Conflict", new { custID = Model.custID, projID  = Model.projID }, null)