Ajax로 PartialView에서 업데이트 레코드에 문제가 있습니다. 나는 View @ Html.Action ("_PartialView", "Controller", 새로운 {id = OrderId}) 및 PartialView with Ajax Form을 가지고있다. 하지 -Ajax 업데이트는 처음에만 작동합니다.
@model IEnumerable<WebMartin.Models.OrderExecutionRemark>
@{
AjaxOptions ajaxOpts = new AjaxOptions
{
UpdateTargetId = "orderdisplayremark",
Url = Url.Action("OrderRemarkDelete", "OrderExecution"),
HttpMethod = "POST"
};
}
@ViewBag.Po
@if (Model.Any())
{
<table id="orderdisplayremark">
<thead>
<tr>
<th>Worker</th>
<th>Date</th>
<th>Remark</th>
<th></th>
</tr>
</thead>
<tbody>
@foreach (var remark in Model)
{
<tr>
<td>@remark.UserName</td>
<td>@remark.OrderRemarkDate.ToString("yyyy-MM-dd")</td>
<td>@remark.OrderRemarkText</td>
<td>
@using (Ajax.BeginForm(ajaxOpts))
{
@Html.Hidden("remarkid", remark.OrderRemarkId)
<input type="submit" value="Delete" />
}
</td>
</tr>
}
</tbody>
</table>
}
및 컨트롤러
[HttpPost]
public PartialViewResult OrderRemarkDelete(int remarkid)
{
OrderExecutionRemark oer = db.OrderExecutionRemarks.Find(remarkid);
/* db.OrderExecutionRemarks.Remove(oer);
db.SaveChanges(); */
ViewBag.Po = oer.OrderRemarkId;
return PartialView("_OERemarkPartial", db.OrderExecutionRemarks.Where(p => p.OrderId == oer.OrderId).ToList());
}
[HttpGet]
[ChildActionOnly]
public PartialViewResult _OERemarkPartial(int id = 0)
{
return PartialView(db.OrderExecutionRemarks.Where(p => p.OrderId == id).ToList());
}
문제
업데이트 후에 만 처음 작동합니다. "삭제"버튼을 다시 누르기 전에 페이지를 새로 고침해야합니다. 어떻게 해결할까요? 나는 RedirectToAction (View)을 사용할 것이라고 생각했지만이 PartialView를 세 가지 뷰에서 사용하고있다.
PartialView는 근로자가 발주 한 주문에 대한 표시 설명입니다. 보시다시피 각 행에는 작업자 이름, 날짜, 발언 텍스트 및 양식이 포함되어있어 ID remark를 전달하여 작업을 삭제합니다. 많은 말 (많은 행)과 첫 번째 게시물 (삭제) 말을 한 후에는 테이블을 레코드로 업데이트해야하며 다음 발언을 삭제하려면 할 수 없습니다. 다음 발언을 삭제하려면 F5 (새로 고침 페이지)를 눌러야합니다. 어디가 잘못 됐니?
미리 답변 해 주셔서 감사합니다.