ASP.NET MVC 3.0 Частичная внутренняя и внешняя форма с проблемой ненавязчивых атрибутов проверки данных - PullRequest
4 голосов
/ 14 июня 2011

Я получил с условным содержимым, в соответствии с условиями, использующими jQuery, я включаю или исключаю эти части из элементов формы.

Вот мои функции:

function MoveInsideForm(id) {
       $("#" + id).insertAfter("#myForm")
   }

function MoveOutsideForm() {
       $("#myPartial1").insertAfter("#element-outside-from");
       $("#myPartial2").insertAfter("##element-outside-from");
   }

Проблема с insertAfter(), он не получает скопированные пользовательские атрибуты HTML 5

Например, у меня есть такой элемент

<input data-val="true" data-val-required="*" id="MyInput" name="MyInput" type="text" value="" class="input-validation-error"/>

Но insertAfter() копируя это так:

<input id="MyInput" name="MyInput" type="text" value=""/>

Можно ли как-то сказать insertAfter(), чтобы скопировать атрибуты HTML 5? Моя версия jQuery 1.6.1.

UPDATE:

Спасибо, ребята, за комментарии. Дело в том, что когда я отрисовываю свои партиалы внутри формы, входные данные генерируются с помощью ненавязчивых атрибутов данных, но если я отрисовываю свои партиалы вне формы, ненавязчивые атрибуты данных изначально не включаются во входные данные.

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

1 Ответ

6 голосов
/ 16 июня 2011

Чтобы генерировать ненавязчивую проверку, MVC должен иметь FormContext. Когда вы размещаете HtmlHelper вне Html.BeginForm или Ajax.BeginForm, HtmlHelpers не будет иметь ненавязчивых атрибутов проверки, если вы не создадите экземпляр FormContext вручную. Вы можете вручную создать экземпляр FormContext, вставив следующий код перед вашими помощниками:

this.ViewContext.FormContext = new FormContext();

Если вы помещаете своих помощников перед BeginForm (), то обязательно очистите FormContext после ваших помощников и перед началом формы.

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