私はメインビューでIEnumerableを使用し、部分モデルでは単一モデルオブジェクトを使用しました。モデルを@ html.partialに渡すには?
私はCRUD操作をしています:各行には編集/詳細/削除ボタンがあります。
以下は私のCSHTMLコードです:
@model IEnumerable<jQuery_CRUD.DAL.User>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Name)
</td>
<td>
@Html.DisplayFor(modelItem => item.Address)
</td>
<td>
@Html.DisplayFor(modelItem => item.ContactNo)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id = item.UserId }, new { @class = "modal-with-form btn btn-default" ,href = "#modalEdit" }) |
@Html.ActionLink("Details", "Details", new { id = item.UserId }, new { @class = "modal-with-form btn btn-default", href = "#modalDetails" }) |
@Html.ActionLink("Delete", "Delete", new { id = item.UserId }, new { @class = "modal-with-form btn btn-default", href = "#modalDelete" })
<div id="modalEdit" class="modal-block modal-block-primary mfp-hide">
@Html.Partial("Edit", item)
</div>
<div id="modalDetails" class="modal-block modal-block-primary mfp-hide">
@Html.Partial("Details", item)
</div>
<div id="modalDelete" class="modal-block modal-block-primary mfp-hide">
@Html.Partial("Delete", item)
</div>
</td>
</tr>
編集/詳細をクリックする/削除するには、テーブル内の最初の行のみに影響します。
私が使用した部分図のモデルは次のとおりです。
@model jQuery_CRUD.DAL.User
私はこれをどのように克服していますか?
私のコントローラ
public ActionResult Edit(int id = 0)
{
User user = db.User.Find(id);
if (user == null)
{
return HttpNotFound();
}
return PartialView(user);
}
//
// POST: /User/Edit/5
[HttpPost]
public ActionResult Edit(User user)
{
if (ModelState.IsValid)
{
db.Entry(user).State = EntityState.Modified;
db.SaveChanges();
TempData["Message"] = "Data has been updated successfully!";
return RedirectToAction("Index");
}
return View(user);
}
コントローラを追加しました。どうぞご覧ください。 – naveen
コントローラの名前は何ですか?私が見た限りでは、EditControllerでなければならず、その中のメソッドも編集します...デバッグしましたか?最初の方法で入力していますか(初めてページを読み込むとき)? 2回目の方法(2回目の提出後)に入っていますか? –
コントローラ名はUserControllerです – naveen