Asp.net mvc 4 @Html.ValidationSummary()在Ajax.BeginForm中不起作用

Asp.net mvc 4 @Html.ValidationSummary()在Ajax.BeginForm中不起作用,asp.net-mvc-4,validationsummary,ajax.beginform,Asp.net Mvc 4,Validationsummary,Ajax.beginform,在Ajax.BeginForm表单中使用@Html.ValidationSummary()是否有任何问题 我有以下场景,无法获得必填字段的验证。表单刚刚发布,也没有抛出错误 这是一种观点: @using (Ajax.BeginForm("Register", "Account", new AjaxOptions { HttpMethod = "POST", OnSuccess = "closeDialog('RegistroUsuario')" })) { @Html.Validation

Ajax.BeginForm
表单中使用
@Html.ValidationSummary()
是否有任何问题

我有以下场景,无法获得必填字段的验证。表单刚刚发布,也没有抛出错误

这是一种观点:

@using (Ajax.BeginForm("Register", "Account", new AjaxOptions { HttpMethod = "POST", OnSuccess = "closeDialog('RegistroUsuario')" }))
{
   @Html.ValidationSummary() 
   <fieldset>
        <legend>Cadastro novo Usuário</legend>
       <table id="changePassword">
                <tr>
                    <td class="smallField">Username:</td>
                    <td>@Html.TextBoxFor(m => m.UserName)</td>
                </tr>
                <tr>
                    <td>Password:</td>
                    <td>@Html.PasswordFor(m => m.Password)</td>
                </tr>
                <tr>
                    <td>Repetir Senha:</td>
                    <td>@Html.PasswordFor(m => m.ConfirmPassword)</td>
                </tr>
                <tr>
                    <td>Email:</td>
                    <td>@Html.TextBoxFor(m => m.Email)</td>
                </tr>
                <tr>
                    <td>Pergunta Secreta:</td>
                    <td>@Html.TextBoxFor(m => m.SecretQuestion)</td>
                </tr>
                               <tr>
                    <td>Resposta:</td>
                    <td>@Html.TextBoxFor(m => m.SecretQuestionPassword)</td>
                </tr>
                <tr>
                    <td>Ativo:</td>
                    <td><input type="checkbox" name="status" id="status" value="Ativo"></td>
                </tr>    
            </table>           
    </fieldset>
    <input type="submit" value="Criar Usuário" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only button-link"/>
}
模型:

public class RegisterModel
{
    [Required]
    [Display(Name = "Usuário")]
    public string UserName { get; set; }

    [Required]
    [Display(Name = "Email")]
    public string Email { get; set; }

    [Required]
    [StringLength(100, ErrorMessage = "A {0} deve ter no mínimo {2} caracteres.", MinimumLength = 6)]
    [DataType(DataType.Password)]
    [Display(Name = "Senha")]
    public string Password { get; set; }

    [Required]
    [DataType(DataType.Password)]
    [Display(Name = "Repetir Senha")]
    [Compare("Password", ErrorMessage = "As senhas não coincidem")]
    public string ConfirmPassword { get; set; }

    [Required]
    [Display(Name = "Pergunta Secreta")]
    public string SecretQuestion { get; set; }

    [Required]
    [StringLength(100, ErrorMessage = "A {0} deve ter no mínimo {2} caracteres.", MinimumLength = 6)]
    [DataType(DataType.Password)]
    [Display(Name = "Senha Pergunta Secreta")]
    public string SecretQuestionPassword { get; set; }

    [Required]
    [Display(Name = "Ativo")]
    public bool Active { get; set; }
}
我错过了什么吗?

发现了问题

未设置Ajax.Options目标id。一旦我设置了验证dom元素,现在我就得到了消息


非常感谢您具体介绍Guilherme Longo的答案

将AjaxOptions设置为

new AjaxOptions() { HttpMethod = "Post", OnSuccess = "RefreshMethod", UpdateTargetId = "FormId" }

注意
UpdateTargetId
设置为formId。为我工作谢谢Guilherme好吧,你的调试器告诉你什么?您是否访问了返回视图(模型)?摘要的位置看起来不错。什么是“验证dom”?当我使用您的示例时,我必须将UpdateTargetId设置为视图的根元素,您可以通过控制器返回该元素,它将重新渲染它entirely@Philipp,这是一个老项目。当时我正在做那个项目,我对我正在做的事情没有专业知识,我找到了一个解决方案,我不确定它是否是最好的。我会在晚上打开那个项目,然后我会带着awnser返回给你。“UpdateTargetId”可以设置为form parent,而不是form。当它设置为表单时,它只是第一次工作。应该注意的是,父母不得有另一个孩子。否则,新代码将替换为表单。
new AjaxOptions() { HttpMethod = "Post", OnSuccess = "RefreshMethod", UpdateTargetId = "FormId" }