У меня есть проект ASP.NET MVC, работающий с NHibernate и NHibernate.Validator, и я хотел бы использовать xVal 1.0 (самый последний выпуск).
Я добавил запрошенные скрипты в проект и сослался на него в Site.Master:
<script type="text/javascript" src="<%= ResolveUrl("~/Scripts/jquery-1.3.2.js")%>"></script>
<script type="text/javascript" src="<%= ResolveUrl("~/Scripts/jquery.validate.js")%>"></script>
<script type="text/javascript" src="<%= ResolveUrl("~/Scripts/xVal.jquery.validate.js")%>"></script>
Затем я добавил NHibernateValidatorRulesProvider в xVal.ActiveRuleProviders в Global.asax Application_OnStart ():
xVal.ActiveRuleProviders.Providers.Add(new NHibernateValidatorRulesProvider(ValidatorMode.OverrideXmlWithAttribute));
Наконец, в представлении я добавил:
<%= Html.ClientSideValidation<DomainModel.Entities.MyCustomClass>(Prefix) %>
Я получаю предупреждение JavaScript в IE, но не в Firefox. Если ввести сейчас несколько недопустимых полей и отправить их, xVal не сработает - вместо этого создается PostBack, а проверка на стороне сервера обрабатывает данные.
Что я делаю не так? Мне удалось запустить пример проекта xVal с xVal 1.0 ...
// edit: я должен уточнить свое утверждение: что-то действительно происходит: он выполняет постбэк и помечает недопустимые поля красным (как это происходит все время с проверкой на стороне сервера), но если я что-то напишу в эти поля цвет возвращается в нормальное состояние. но если я затем снова удаляю значение, ничего не происходит до тех пор, пока я не нажму «Отправить» и форма не выполнит другую обратную передачу ... Если я удаляю код проверки клиента, этого не происходит.