Как включить ненавязчивую проверку JavaScript в ваших HtmlHelpers?

Я написал свой собственный HtmlHelper и теперь хочу интегрировать ненавязчивую проверку (например, http://bradwilson.typepad.com/blog/2010/10/mvc3-unobtrusive-validation.html)

Есть ли быстрый способ сделать это, чтобы сохранить атрибуты свойств модели и добавить атрибуты data-val-etc HTML в построенную строку HTML?


person StuperUser    schedule 25.07.2011    source источник


Ответы (2)


Метод GetUnobtrusiveValidationAttributes() используется в исходнике MVC3:

Видеть:

person StuperUser    schedule 25.07.2011

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

person David C    schedule 25.07.2011
comment
Html.ValidateFor() возвращает void (msdn.microsoft.com/en-us/library/ee703548. aspx), как бы вы получили результат? - person StuperUser; 25.07.2011
comment
Ах да, я думаю, перехват вывода будет невозможен, так как он пишет прямо в ответ. Вы не опубликовали код своего помощника HTML, но можно ли встроить @Html.ValidateFor(m=›m.whateverproperty) в свой собственный помощник? - person David C; 25.07.2011
comment
Вы также можете попробовать @Html.ValidationMessageFor(m=›m.property), это выведет строку, ознакомьтесь со следующим сообщением: forums.asp.net/t/1524345.aspx/ - person David C; 25.07.2011
comment
Синтаксис @ является частью RAZOR, HtmlHelper — это скомпилированный класс C# в другом файле, который вызывается из представления. ValidationMessageFor() предоставляет метку и т. д., они необходимы, но это не решит проблему проверки, поскольку отсутствуют атрибуты data-val, позволяющие выполнить проверку. - person StuperUser; 25.07.2011
comment
Хорошо, я понимаю, что вы говорите, извините за недопонимание. В этом случае вы можете загрузить исходный код MVC3 и скопировать сегмент Html.Validate, который записывает атрибуты, и добавить эту функциональность к выходным данным вашего помощника. Это, по крайней мере, поможет вам разобраться в логике самостоятельно. В данный момент я не могу думать ни о каком другом способе. - person David C; 25.07.2011