使用ajax调用操作后,表单数据不会更新

时间:2018-04-26 21:32:44

标签: asp.net-mvc-4

我的表格中有一个表格,我不希望它显示,直到点击页面上的链接,这将调用一个动作来获取数据并重定向回相同的视图,以便填充表格。本质上就像主/细节形式。我添加了一个css类来隐藏表,但我知道调用该操作的唯一方法是使用ajax。我写了函数的代码,但它似乎工作正常,但表没有填充,我无法弄清楚为什么。我正在使用表的部分视图,该视图应该在单击链接后填充。我对MVC很新,所以我不知道我错过了什么,任何帮助都会受到赞赏。

这是jquery点击事件中使用的链接

<td><a id="viewOrder" href="#" data-PONumber-id=@osOrder.PurchaseOrderNumber>View Order</a></td>

这是我在控制器中调用动作的jQuery

$(document).ready(function() {
        $("#viewOrder").on("click",
            function(e) {

                var button = $(this);
                $.ajax({
                    type: "GET",
                    url: '@Url.Action("Details", "Receiving")',
                    data: { "id": button.attr("data-PONumber-id") },
                    success: function() {
                            var orderButton = $(".js-Order");
                            orderButton.removeClass("invisible");
                            orderButton.addClass("visible");
                    }
                });
            });
    });

这是我的控制器代码。

public ActionResult Details(int id)
    {
        var purchaseOrder = _context.PurchaseOrders.Single(p => p.PurchaseOrderNumber == id);

        var viewModel = new ReceivngFormViewModel
        {
            PO = purchaseOrder.PurchaseOrderNumber,
            Vendor = purchaseOrder.Vendor.VendorName,
            Contact = purchaseOrder.Vendor.Phone,
            OutstandingOrders = _context.PurchaseOrders.Where(od =>
                od.Closed == false && !String.IsNullOrEmpty(od.PurchaseOrderNumber.ToString()) &&
                od.OrderDate != null).ToList(),
            ReceivedOrderDetails = _context.PurchaseOrderDetails
            .Where(pod => pod.PurchaseOrderID == purchaseOrder.PurchaseOrderID && (pod.Quantity - pod.ReceiveOrderDetails
            .Sum(rod => rod.QuantityReceived)) != 0)
            .Select(pod => new ReceivedOrderDetail
            {
                PurchaseOrderId = pod.PurchaseOrderID,
                PurchaseOrderDetailId = pod.PurchaseOrderDetailID,
                PartId = pod.PartID,
                PartDescription = pod.Part.Description,
                QtyOnOrder = pod.Quantity,
                QtyOutstanding = pod.ReceiveOrderDetails.Select(rod => rod.QuantityReceived).Any() ?
                    pod.Quantity - pod.ReceiveOrderDetails.Sum(rod => rod.QuantityReceived) : pod.Quantity
            }).ToList()
        };
        return View("Index", viewModel);
    }

0 个答案:

没有答案