MVC 4验证解雇,但表单仍在提交?

时间:2013-04-21 22:31:02

标签: asp.net asp.net-mvc razor asp.net-mvc-4 jquery-validate

我的MVC 4验证工作正常,弹出错误消息,但仍然提交表单。知道我错过了什么吗?谢谢。

public class StatusRequestModel
{
    [Required]
    [Display(Name = "Ticket Number")]
    public int? TicketNumber { get; set; }

    [Required]
    [Display(Name = "Postal Code")]
    public int? PostalCode { get; set; }
}


@using (Html.BeginForm())
{
    @Html.ValidationSummary()
    @Html.LabelFor(x => x.TicketNumber)
    @Html.TextBoxFor(x => x.TicketNumber)
    @Html.LabelFor(x => x.PostalCode)
    @Html.TextBoxFor(x => x.PostalCode)
    <input type="submit" value="Submit" />
    <input type="reset"  value="Reset"/>
}

2 个答案:

答案 0 :(得分:4)

确保您的代码中引用了以下JS库:

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")"></script>

确保web.config文件中包含以下appSettings个条目:

<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />

如果您愿意,还可以在视图中启用客户端验证,而不是配置文件:

@{ Html.EnableClientValidation(); }

答案 1 :(得分:3)

greg84的答案是需要包含在项目中的正确答案。但对我来说,我也遇到了jquery.validate插件无法使用jquery&gt;的问题。 1.9.0。一旦我将它改为jquery 1.8.3,它就可以了。