次のように、メイン ビューに位置する部分ビューがあります。
<div id="complaintlist">
@Html.Action("ShowCaseComplaints", "Cases", new { caseid = Model.CasesID })
</div>
これは部分的なビューです:
@model IEnumerable<cummins_db.ViewModels.CaseComplaintsViewModel>
<table width="100%">
<tr>
<th></th>
<th></th>
<th>Complaint Code</th>
<th>Complaint Description</th>
<th>Delete</th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>
@Html.HiddenFor(modelItem => item.CasesID )
</td>
<td>
@Html.HiddenFor(modelItem => item.CaseComplaintID )
</td>
<td>
@Html.DisplayFor(modelItem => item.ComplaintCode )
</td>
<td>
@Html.DisplayFor(modelItem => item.ComplaintType)
</td>
<td>
@Ajax.ActionLink("Delete", "RemoveCodeFromCase", "Cases", new { caseid = item.CasesID, id = item.CaseComplaintID }, null)
</td>
</tr>
}
</table>
この部分ビューには、ユーザーが部分ビューのモデルからレコードを削除できるアクションがあります。以下は、RemoveCodeFromCase というアクションです。
public ActionResult RemoveCodeFromCase(int caseid, int id)
{
if (ModelState.IsValid)
{
CaseComplaint c = db.CaseComplaints.Find(id);
db.CaseComplaints.Remove(c);
db.SaveChanges();
var data = (from C in db.CaseComplaints
where C.CasesID == caseid
select new CaseComplaintsViewModel()
{
CasesID = C.CasesID,
CaseComplaintID = C.ComplaintCodeID,
ComplaintCode = C.ComplaintCode.ComplaintCodeName,
ComplaintType = C.ComplaintCode.ComplaintType
}).ToList();
return PartialView("_CaseComplaintCodes", data);
}
return PartialView("_CaseComplaintCodes");
}
このアクションの実行後に部分ビューを更新する方法を理解しようとしています。
どうも