Невозможно обновить поле Label.HiddenFor в ASP.net MVC после получения ответа Ajax

В моем приложении ASP.net MVC. Я столкнулся с проблемой и действительно борюсь за нее.

У меня есть форма редактирования в представлении, в которой у меня есть метка, которая определяется как:

<% using (Ajax.BeginForm("AjaxEdit", "Home", new AjaxOptions { OnSuccess = "Success", OnFailure = "Failed",UpdateTargetId = "ChangedOn"}))
                   { %>

           <%=Html.HiddenFor(Model => Model.ChangedOn)%>
           <%:Html.DisplayFor(Model => Model.ChangedOn)%>

после нажатия кнопки отправки вызывается запрос ajax, и ответ сервера отправляется обратно.

Но проблема в том, что я не смог обновить это скрытое поле с полученным ответом сервера.

Проблема в том, что это тип скрытого ввода. есть ли другой способ сделать это .. пожалуйста, помогите.


person Sai Avinash    schedule 26.10.2013    source источник
comment
У меня такая же проблема, есть решение?   -  person Matheus Miranda    schedule 05.10.2017


Ответы (3)


Попробуйте использовать тег html для скрытого ввода, чтобы увидеть, что произойдет:

 <input id="ChangedOnId" name="ChangedOn" type="hidden" value="<%=Model.ChangedOn%>">
person Stanislav Nedeljkovic    schedule 26.10.2013

Если вы хотите изменить значение скрытого ввода, вы можете сделать это:

$("#ChangedOn").val(yourValue);

И если вы хотите изменить его текст, измените DisplayFor с помощью тега, который вы можете выбрать. Я думаю, что DisplayFor отображает только простой текст вашей собственности

person MRB    schedule 26.10.2013

Скрытые поля хранятся в ModelState

Вы можете удалить его

ModelState.Remove(nameof(Model.ChangedOn));
person Bocmanis    schedule 12.04.2019