如何在 MVC 中刷新视图

How refresh a view in MVC

我有 _LayoutOnecs.html 文件和视图加载其中的渲染体并在 table 中显示记录列表。在 table 列之一中,我有一个删除图标,点击它会转到控制器并从数据库中删除记录,一旦记录被删除,视图应该被刷新,所以我 return 将操作编辑到控制器,它获取所有记录

public ActionResult GetAdvertisementDetails()
{
    var advertisementList = new AdvertisementManager().GetAdvertisementDetails();     
    return View("AdvertisementDetails", advertisementList);
}

public ActionResult DeleteAdvertisementDetails(int id)
{
    new AdvertisementManager().DeleteAdvertisementDetails(id);
    return RedirectToAction("GetAdvertisementDetails", "Advertisement");
}

一旦删除完成,它将转到 GetAdvertisementcontroller 和 return 查看,但已删除的记录位于 table 如果我按 F5 刷新页面,记录将从 table. 删除记录后如何自动刷新

查看代码

<div class="col-md-12 main_table">
    <div class="table-responsive">
        <table class="table" id="hom_table">
            <tr>
                <th>Advertisement  Name</th>
                 <th>Link</th>
                 <th>Start Date</th>
                 <th>End Date</th>
                 <th width="100">Action</th>
             </tr>
             @foreach (var advertisements in Model)
             {
                 <tr>
                     <td> @advertisements.Description</td>
                     <td> @advertisements.ImageUrl</td>
                     <td> @advertisements.StartDate</td>
                     <td> @advertisements.EndDate</td>
                     <td>
                         <a onclick="EditadvertisementDetails(@advertisements.AdvertisementId)">
                            <i class=" pull_Advt_details tbl_edit_btn fa fa-edit Editbutton"></i>
                         </a>
                         <a id="Deladvertisement" onclick="Deleteadvertisement(@advertisements.AdvertisementId)" >
                             <i class="tbl_del_btn fa fa-trash"></i>
                         </a>
                     </td>
                 </tr>
             }
         </table>
     </div>
     <!-- Responsive main table Ends -->
</div>

Ajax 调用保持在同一页面上。您在控制器方法中使用 return RedirectToAction("GetAdvertisementDetails", "Advertisement"); 将被忽略。它也不需要重定向,因为您可以从 table

中删除该行

将 html 修改为(注意删除生成无效 html 的 id 属性):

<a class="delete" data-id="@advertisements.AdvertisementId>
  <i class="tbl_del_btn fa fa-trash"></i>
</a>

并使用以下脚本调用控制器方法并删除行

var url = '@Url.Action("DeleteAdvertisementDetails", "Advertisement")';
$('.delete').click(function() {
  var row = $(this).closest('tr');
  $.post(url, { id: $(this).data('id') }, function(response) {
    if(response) {
      row.remove();
    }
  }).fail(function (response) {
    // display error message?
  });
});

并将控制器修改为

[HttpPost]
public JsonResult DeleteAdvertisementDetails(int id)
{
    new AdvertisementManager().DeleteAdvertisementDetails(id);
    return Json(true);
}