Данные формы не обновляются после вызова действия с ajax - PullRequest
0 голосов
/ 27 апреля 2018

В моей форме есть таблица, и я не хочу, чтобы она отображалась до тех пор, пока не будет нажата ссылка на странице, которая вызовет действие, чтобы получить данные и перенаправить обратно в то же представление, чтобы заполнить таблицу. По сути, как мастер / деталь формы. Я добавил класс css, чтобы скрыть таблицу, но единственный известный мне способ вызова действия - использовать ajax. Я написал код для функции, но она, кажется, работает нормально, но таблица не заполняется, и я не могу понять, почему. Я использую частичное представление для таблицы, которая должна быть заполнена после нажатия на ссылку. Я очень новичок в MVC, поэтому я понятия не имею, что мне не хватает, любая помощь будет оценена.

Это ссылка, используемая в событии jquery click

<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);
    }
...