MVC JQuery пост 500 ошибка - PullRequest
       2

MVC JQuery пост 500 ошибка

0 голосов
/ 18 января 2012

Может кто-нибудь, пожалуйста, объясните мне:

У меня есть метод MVC, в который я хочу опубликовать некоторую дату в jquery, которая выглядит следующим образом:

public bool UpdateOfficeUser(InvoiceLine invoiceLineUpdates)
        {
            var invoiceLine = _unitOfWork.InvoiceLineRepository.Get(invoiceLineUpdates.InvoiceLineId);

            ...

            return true;
        }

Вызывается при изменении выпадающего списка класса dropdownofficeapprover:

//Office approver changed
    $(".dropdownofficeapprover").change(function () {
        var invoiceLineId = $(this).attr("invoiceLineId");

        $(".dropdownofficeapprover[invoicelineid='" + invoiceLineId + "'] option:selected").each(function () {
            var invoiceLine = {
                OfficeUserId: 7
            };
            alert(invoiceLine.InvoiceLineId);
            alert(invoiceLine.OfficeUserId);

            $.post('/Invoice/UpdateOfficeUser', invoiceLine, function (data) {

                if (data == 'False') {

                    alert("You must have at least two different approvers");
                    location.replace(window.location.pathname);
                }
            });
        });
    });

Все отлично работает, пока не произойдет сообщение. Тогда я получаю ошибку 500.

1 Ответ

2 голосов
/ 18 января 2012

Тогда я получаю ошибку 500.

Попробуйте пройтись по коду внутри действия контроллера и посмотрите, вызывает ли оно исключение и по какой причине. Или даже лучше: используйте инструмент отладки javascript, такой как FireBug, для отслеживания фактического запроса AJAX, просмотра запроса и ответа от сервера. Это должно дать вам указание на то, что пошло не так, чтобы вы получили эту ошибку 500.

Кроме того, вы, похоже, никогда не присваиваете свойство InvoiceLineId вашего invoiceLine объекта, который вы отправляете на сервер.

Также вы, похоже, отправляете несколько запросов AJAX для каждого выпадающего списка, соответствующего вашим критериям, что, очевидно, очень неэффективно. Я бы порекомендовал вам извлечь все необходимые данные в объект или в вашем случае массив объектов и отправить один AJAX-запрос на сервер. Вам, конечно, придется изменить действие контроллера для работы с этой новой моделью представления, которую вы будете отправлять.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...