Validação do cliente MVC2 não está funcionando ao obter o formulário da chamada ajax

Eu estou tentando usar MVC2 validação do lado do cliente em uma visão parcial que é processada via $. No entanto, a validação do cliente não está funcionando. Não sei bem qual é o problema.

[Required(ErrorMessage = "Email is required")] public string Email { get; set; }   m.Email, new { @class = "TextBox150" } )%>  m.Email )%>   

Eu não estou fazendo nada de especial para renderizar a visão parcial. Basta colocar o html em um div e exibi-lo em um popup modal.

Em uma nota lateral, alguém sabe se é possível enviar o formulário com a validação do cliente sem um botão de envio?

Algum tempo atrás eu escrevi um post sobre esse problema, você pode usá-lo como ponto de partida em sua situação (você terá que modificar o lugar onde você chama as funções e passar elemento correto para processar): http://tpeczek.com/ 2010/04 / making-aspnet-mvc-2-client-side.html

A validação MVC2 do lado do cliente depende de alguns javascript adicionais sendo renderizados na página que codifica as regras de validação do modelo. Eu acho que você pode obter isso de uma visão parcial, embora eu não tenha tentado, contanto que você inclua a chamada EnableClientValidation na sua visão parcial pouco antes de iniciar o formulário. Certifique-se de ter o javascript do cliente MVC incluído na visualização principal.

 <% Html.EnableClientValidation(); %> <% using ( Ajax.BeginForm( new AjaxOptions { Confirm = "You sure?" } ) ) { %> <%: Html.TextBoxFor( m => m.Email, new { @class = "TextBox150" } )%> <%= Html.ValidationMessageFor( m => m.Email )%>  <% } %> 

Eu costumo usar validação baseada em modelo MVC2 em conjunto com o plugin de validação jQuery usando o javascript de cola MVC / jQuery do código MVCFutures. Eu sei que isso funciona no envio de formulários, se o envio é acionado através de um botão de envio ou javascript. Todos os meus “botões” são realmente links que acionam a submissão de formulários via javascript e funciona para mim. Presumo que isso seja verdade dos scripts de validação padrão do MVC, mas não os usei.