0

インデックスには、編集するオブジェクトへの次のリンクがあります。

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

私のコントローラーには、次のメソッド シグネチャがあります。

public ActionResult Edit(Thing thing)

ただし、これは呼び出されず、代わりに null 値が渡されたことを示すエラーが表示されます。リンクには、オブジェクトの必要な 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 に答える