为什么客户端验证不起作用?
<script src="<%: Url.Content("~/Scripts/jquery-1.4.1.min.js")%>" type="text/javascript"></script>
<script src="<%: Url.Content("~/Scripts/MicrosoftAjax.js")%>" type="text/javascript"></script>
<script src="<%: Url.Content("~/Scripts/MicrosoftMvcValidation.js")%>" type="text/javascript"></script>
<h2>Criar</h2>
<h2>Login</h2>
Faça login aqui
<% Html.EnableClientValidation(); %>
<% using (Html.BeginForm())
{ %>
<%: Html.ValidationSummary(false) %>
<%: Html.LabelFor(x => x.Nome) %><%: Html.EditorFor(x => x.Nome) %>
<%: Html.LabelFor(x => x.Email) %><%: Html.EditorFor(x => x.Email) %>
<%: Html.LabelFor(x => x.Senha) %><%: Html.EditorFor(x => x.Senha) %>
<%: Html.LabelFor(x => x.ConfirmacaoSenha) %><%: Html.EditorFor(x => x.ConfirmacaoSenha) %>
<input type="submit" value="Criar Conta" />
<% } %>
这是模型类:
public class CadastroViewModel
{
[Required(ErrorMessage = "Por favor digite seu nome")]
public string Nome { get; set; }
[Required(ErrorMessage = "Por favor digite seu e-mail")]
[RegularExpression(".+\\@.+\\..+", ErrorMessage = "Por favor entre com um e-mail válido")]
public string Email { get; set; }
[Required(ErrorMessage = "Por favor digite sua senha")]
public string Senha { get; set; }
[Required(ErrorMessage = "Por favor confirme sua senha")]
[DisplayName("Confirmação de Senha")]
public string ConfirmacaoSenha { get; set; }
}
答案 0 :(得分:2)
您需要添加ValidationMessageFor帮助程序以启用客户端验证:
<%: Html.LabelFor(x => x.Nome) %>
<%: Html.EditorFor(x => x.Nome) %>
<%: Html.ValidationMessageFor(x => x.Nome) %>
<%: Html.LabelFor(x => x.Email) %>
<%: Html.EditorFor(x => x.Email) %>
<%: Html.ValidationMessageFor(x => x.Email) %>
<%: Html.LabelFor(x => x.Senha) %>
<%: Html.EditorFor(x => x.Senha) %>
<%: Html.ValidationMessageFor(x => x.Senha) %>
<%: Html.LabelFor(x => x.ConfirmacaoSenha) %>
<%: Html.EditorFor(x => x.ConfirmacaoSenha) %>
<%: Html.ValidationMessageFor(x => x.ConfirmacaoSenha) %>
答案 1 :(得分:1)
ValidationSummary不适用于客户端验证。您必须为每个元素添加ValidationMessageFor。
e.g。
<%: Html.LabelFor(x => x.Nome) %><%: Html.EditorFor(x => x.Nome) %> <%: Html.ValidationMessageFor(x => x.Nome)%>