0

在索引中,我有以下要编辑的对象的链接:

<div class="editor-field">@Html.ActionLink("Edit", "Edit", new { id = thing.Id })</div>

在我的控制器上,我有以下方法签名:

public ActionResult Edit(Thing thing)

但是这没有被调用,而是显示一个错误,指定传递了空值。该链接包含所需的对象 ID 值。我需要更改控制器中 Edit 方法的签名吗?

更新:即使将错误消息更改为,该示例也会失败

Server Error in '/' Application.
The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'MongoDB.Bson.ObjectId' for method 'System.Web.Mvc.ActionResult Edit(MongoDB.Bson.ObjectId)' 
4

1 回答 1

6

我需要更改控制器中 Edit 方法的签名吗?

是的,因为你只传递了一个id参数,所以Html.ActionLink你不能期望在你的Edit操作中得到更多的东西:

public ActionResult Edit(string id)
{
    Thing thing = ... go and fetch the thing from the id
    ...
}
于 2012-07-06T12:04:41.433 回答