この質問は何度か聞かれているかもしれませんが、私の場合はうまくいきませんので、ご容赦ください。
コントローラーに以下のアクションがあります。
[HttpPost]
public ActionResult Edit(Organization obj)
{
if (ModelState.IsValid)
{
OrgRepo.Update(obj);
return RedirectToAction("Details");
}
else
return View();
}
public ActionResult Edit(int id)
{
return View();
}
編集後のアクションを呼び出して、データをデータベースに更新しようとしています。この目的のために、次のように編集アクションを呼び出しています。
@foreach (var item in Model) {
var test = item.PartyId;
<tr id="@test">
<td class ="txt">
<input type="text"class="txt" value="@Html.DisplayFor(modelItem => item.Caption)"/>
</td>
<td class ="txt">
<input type="text"class="txt" value="@Html.DisplayFor(modelItem => item.NameInUse)"/>
</td>
<td class ="txt">
<input type="text"class="txt" value="@Html.DisplayFor(modelItem => item.Description )"/>
</td>
<td>
@using (Html.BeginForm())
{
@Html.ActionLink("Edit", "Edit", "Org", null, new { @obj = item })
}
</td>
</tr>
ただし、編集をクリックすると例外が発生します。パラメーター辞書には、メソッド 'System.Web.Mvc.ActionResult Edit(Int32)' の null 非許容型 'System.Int32' のパラメーター 'id' の null エントリが含まれています。 Dwiza.Controllers.OrgController'. オプションのパラメーターは、参照型または null 許容型であるか、オプションのパラメーターとして宣言する必要があります。パラメータ名: パラメータ
私の質問:
- どうすればこれを修正できますか?
- 編集後ではなく、編集アクションが呼び出されるのはなぜですか?
- より良い方法を提案できる場合、jQuery、または ajax またはその他の呼び出しの中で編集アクションを呼び出すより良い方法は何ですか?