Ajax调用从控制器刷新部分视图

时间:2017-12-29 16:18:43

标签: asp.net ajax asp.net-mvc asp.net-ajax partial-views

我的控制器中有以下功能:

 public ActionResult DraftOrderDetailsLineItems (Guid customerId)
    {
        //lookup cart based on customer ID
        var draftOrder = new ComApiCart(customerId);

        return PartialView("_draftOrderDetails",draftOrder.OrderDetails);
    }

在我看来,我有部分

的代码
  <tbody id="draftOrderItems">
     @Html.Partial("_draftOrderDetails", Model.Order);
  </tbody>

现在我需要有关Ajax调用的帮助。当单击表中的tr以将此项添加到购物车时,首先调用此调用。这工作正常,我只需要在成功后需要一些帮助来重新加载视图上的_draftOrderDetails局部视图。

$(document).on('click', '#search-results tr', function (event) {
//Add to cart
var id = $(this).find('#SKU').val();
var userId = $('#ID').val();
$.ajax({
    url: "/orders/addtocart",
    type: 'POST',
    cache: false,
    dataType: 'json',
    data: { "productId": id, "Quantity": 1, "UserID": userID, "Description": "" },
    success: function (data) {

        //ajax call to DraftOrderDetailsLineItems to refresh the lines 

    },
    error: function (jqXHR, textStatus, errorThrown) {
        productQty.val(0);
        console.error("[Error in Ajax Request, Add To Cart] Code:" + jqXHR.status + " Error:" + errorThrown + " \nText Status:" + jqXHR.responseText);
        timeoutID = window.setTimeout(updateCurrentSession(ACTION.UPDATE), timeoutDelay);
    }
});

});

我知道我在data.id字段中有来自Ajax调用的客户ID,我只是努力让调用本身在项目添加到购物车后“重新呈现”局部视图。

感谢。

1 个答案:

答案 0 :(得分:0)

你可以改变下面的成功部分,一切都会好的。

&#13;
&#13;
success: function (data) {

    //ajax call to DraftOrderDetailsLineItems to refresh the lines 
			$.get('/YourController/DraftOrderDetailsLineItems/',{customerId:data.id},function(data){
					$("#draftOrderItems").html(data);
			})
},
&#13;
&#13;
&#13;