xVal em MVC.NET com nHibernate.validator não validação do cliente fogo
-
12-09-2019 - |
Pergunta
Eu tenho um projeto MVC ASP.NET trabalhar com NHibernate e NHibernate.Validator e eu gostaria de usar xVal 1.0 (versão mais recente). I Adicionado os scripts solicitados para o projeto e referenciado-lo em 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>
Então eu adicionei o NHibernateValidatorRulesProvider aos xVal.ActiveRuleProviders no Global.asax Application_OnStart ():
xVal.ActiveRuleProviders.Providers.Add(new NHibernateValidatorRulesProvider(ValidatorMode.OverrideXmlWithAttribute));
Finalmente, na View, acrescentei:
<%= Html.ClientSideValidation<DomainModel.Entities.MyCustomClass>(Prefix) %>
Eu recebo um aviso JavaScript no IE, mas nenhum no Firefox. Se entrar agora alguns campos inválidos e submetê-los, xVal não dispara -. Um PostBack está sendo feita em vez ea validação Serverside processa a dados
O que estou fazendo de errado? Eu tenho sido capaz de fazer a amostra xVal Projeto correndo com xVal 1.0 ...
// edit: eu tenho que precisa minha declaração: Algo está realmente acontecendo: Ele faz um post-back e marcas os campos inválidos vermelho (como ele está fazendo o tempo todo com a validação do lado do servidor), mas se eu escrever algo nesses campos, a cor muda de volta ao seu estado normal. mas se eu, em seguida, apagar novamente o valor, nada está acontecendo até que eu clique em Enviar e o formulário não anothe postback ... Se eu remover o código clientsidevalidation, isso não parece acontecer.
Solução
Certifique-se de que o seu validador não está permitindo nulos, MVC é validar formas contra campos vazios em postback mas xVal pode não fazê-lo em todos os casos.
Outras dicas
RESOLVIDO: Eu usei o [Comprimento (1,50)] - Validador para os TextFields para se certificar de que eles contêm um valor. Mas, obviamente, xVal não lidar com este validador como exceção: xVal permite que uma nova postagem, mesmo que os campos estão vazios. Para certificar-se que os controlos ValX se o campo estiver vazio, eu tive que escolher o [NotEmpty ()] atributo!