У меня есть поле на моей модели, которая отображается на странице, как это:ASP.NET MVC: Изменение видимости контейнера нарушает модель связывания
<label id="someId">@Model.TextProperty</label>
TextProperty показан во второй раз на странице:
<div id="hiddenEditForm" style="display: none;">
@Html.TextAreaFor(m => m.TextProperty, new
{
@Id = "textPropertyValue"
})
</div>
При отправке формы, не касаясь hiddenEditForm
, контроллер получает исходное значение TextProperty, никаких проблем нет.
Однако, если форма отправлена после $("#hiddenEditForm").dialog()
(jQuery UI Dialog), TextProperty на модели в контроллере пуст и проверка не выполняется. Похоже, что он явно связан с плагином jQuery, так как $("#hiddenEditForm").show()
не нарушает привязки.
Что здесь происходит? Как я могу сохранить свой TextProperty в контроллере?
Я неправильно понял вопрос, когда я ответил. Если я правильно понял сейчас, вы не получаете значение на сервере, когда форма отправляется с 'display: block' на #hiddenEditForm? И вы получаете значение, если оно имеет «display: none»? –
Страница отображается с помощью div style 'display: none'. Для отображения div используется обработчик событий javascript. После того, как div имеет 'display: block', значение будет очищено, независимо от того, что произойдет потом. (т. е. если я скрою div снова после его отображения, значение в модели останется пустым после form.submit) – Laoujin
Является ли значение очищено только на сервере или в DOM? Какой браузер вы используете? Вы проверили опубликованные значения с помощью Fiddler или аналогичного? Это происходит во всех браузерах? –