поле first @ Html.TextBoxFor не обновляет модель при выполнении сообщения ajax

0

Немного странного это - в форме, у меня есть некоторые поля

 <div class="container">

              @*  <div class="row">
                    <div class="col-md-12" >@Html.HiddenFor(m => m.Reference)</div>
                </div>*@


                <div class="row">
                    <div  class="col-md-1" >@Html.Label("Amount:")</div>
                    <div class="col-md-2" >@Html.TextBoxFor(m => m.Amount)</div>
                    <div class="col-md-2" >@Html.Label("Includes VAT:")</div>
                    <div class="col-md-7" >@Html.CheckBoxFor(m => m.IncludesVAT) </div>
                </div>

            </div>

и я отправляю данные контроллеру, используя:

function refreshData() {

    $.ajax({
        url: '@Url.Action("UpdateDebitModel", "Home")',
        type: 'post',
        data: JSON.stringify($("#DebitForm").serialize())
    });
}

Все работает, но первые @Html.TextBoxFor или CheckBoxFor никогда не передают свое значение контроллеру (например, сумма в этом случае, но если я переключу порядок выше, поэтому флажок - это первый элемент управления, тогда значение флажка всегда игнорируется).

Я могу обойти это, имея скрытое поле - то есть, если я раскомментирую вышеуказанное скрытое поле, все будет работать. (Это не должно быть скрытым, это может быть TextBoxFor - и не имеет значения, какое поле в модели ссылается)

Я недоумеваю, я должен что-то упустить. Как я уже сказал, я могу заставить его работать, но я действительно хочу понять, почему первый элемент управления (и только первый элемент управления) игнорируется?

Я вызываю функцию refreshData при изменении:

$('#Amount').change(function () {
        refreshData();
    });
Теги:
asp.net-mvc

1 ответ

1
Лучший ответ

Удалите JSON.stringify из вашего кода. Я испытал это раньше, и все параметры запроса будут завернуты кавычками "Amount = x & IncludesVAT = y", поэтому метод запутывается в отношении его параметров. Если вы удалите stringify, он правильно проанализирует данные.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню