2013-03-22 4 views
0

У меня есть поле на моей модели, которая отображается на странице, как это: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 в контроллере?

+0

Я неправильно понял вопрос, когда я ответил. Если я правильно понял сейчас, вы не получаете значение на сервере, когда форма отправляется с 'display: block' на #hiddenEditForm? И вы получаете значение, если оно имеет «display: none»? –

+0

Страница отображается с помощью div style 'display: none'. Для отображения div используется обработчик событий javascript. После того, как div имеет 'display: block', значение будет очищено, независимо от того, что произойдет потом. (т. е. если я скрою div снова после его отображения, значение в модели останется пустым после form.submit) – Laoujin

+0

Является ли значение очищено только на сервере или в DOM? Какой браузер вы используете? Вы проверили опубликованные значения с помощью Fiddler или аналогичного? Это происходит во всех браузерах? –

ответ

Смежные вопросы