如何让@ Ajax.ActionLink不更新

时间:2015-05-16 14:35:31

标签: ajax asp.net-mvc asp.net-mvc-5

有没有办法让@Ajax.ActionLink()不更新UpdateTargetId? 例如,有这样的事情:

@Ajax.ActionLink("All", "Get_Books_By_Id", new { ID = 0 }, 
    new AjaxOptions() { 
        HttpMethod = "GET", 
        UpdateTargetId = "div_records", 
        InsertionMode = InsertionMode.Replace, 
        LoadingElementId = "div_load" 
    }
)

Get_Books_By_Id正在为PartialView中的表格数据返回PartialView,但我希望在数据(列表)计数为0时不更新UpdateTargetId

有没有办法通过控制发送什么会告诉ajax不要更新?或者还有其他方法吗?

1 个答案:

答案 0 :(得分:1)

您可以通过两种方式实现:

  1. 删除更新目标ID,而不是使用OnSuccess处理程序

    function onSuccess(result){
         var fragment = $(result);
         if(fragment.find("tr").length >= 0)        
             $("div_records").html(fragment)
     }
    
  2. 更改您的控制器以从您的操作返回不同的状态代码

    public ActionResult Get_books_by_id()
    {
           var myBooks = _repostiory.GetBooksById();
           if(!myBooks.Any())
                return new HttpStatusCodeResult(HttpStatusCode.NotFound);
    
           return PartialView("mybooks", myBooks);
     }
    
  3. 我以前使用过这两种方法,显然你需要根据用例定制选择和操作。