这个问题可能已经被问过好几次了,但是在我的情况下它不起作用,所以请多多包涵。
我的控制器中有以下操作:
[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();
}
我正在尝试通过调用 post edit 操作将数据更新到数据库中。为此,我将编辑操作称为如下:
@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.Int32”的参数“id”的空条目,用于方法“System.Web.Mvc.ActionResult Edit(Int32)”中的“ Dwiza.Controllers.OrgController'。可选参数必须是引用类型、可空类型或声明为可选参数。参数名称:参数
我的问题:
- 我怎样才能解决这个问题?
- 为什么它得到编辑操作被调用而不是发布编辑?
- 如果您可以建议更好的方法来调用通过 jQuery 或 ajax 或任何其他方法调用编辑操作,有哪些更好的方法?