Html.ActionLink():新的{route value}表现得很奇怪。我不知道length = 17参数来自哪里

时间:2010-07-19 10:49:30

标签: asp.net-mvc model-binding

我在页面上有这个链接

<% = Html.ActionLink(item.Title, "Edit", "ArticleManagement", 
                      new { id = item.ArticleDataID })%>

和接收文章ID的简单方法

public ActionResult Edit(int id)
{
  //Do something
}

不幸的是,我收到错误“参数字典包含int32参数id的空值,用于编辑(Int32)......

当我查看网址时,我看到类似“ http://localhost:59786/ArticleManagement/Edit?Length=17 ”的内容

什么是“长度= 17 ”?那里有什么?无论如何,到目前为止,我正在使用一个只有3个项目的集合。

感谢您的帮助

2 个答案:

答案 0 :(得分:13)

您需要添加null作为最后一个参数:

<%=Html.ActionLink("Title", "Edit", "ArticleManagement", 
        new { id = 1 }, new { @class = "link-class", attr = "attribute value" })%>

我认为它使用路由值作为没有null的html属性。

答案 1 :(得分:0)

我也遇到过这种情况,当动作链接无法与路线匹配时,似乎会发生这种情况。

长度17对应于物品管理的长度。

编辑:它可能与ActionLink的重载有关。