添加jQuery验证时遇到麻烦

时间:2013-10-24 21:10:44

标签: jquery asp.net-mvc asp.net-mvc-4 jquery-validate unobtrusive-validation

问题已解决

基本上我习惯使用Internet模板启动ASP.NET MVC4项目。但是这次我试用了Basic模板。 现在,我正在尝试手动添加jQuery验证: 我已经安装了NuGet包jQuery.validation并将其包含在我的bundleconfig和_layout文件中。

这是我的bundleconfig:

bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                        "~/Scripts/jquery-{version}.js"));

            bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
                        "~/Scripts/jquery.unobtrusive*",
                        "~/Scripts/jquery.validate*"));

以下是我在_layout中包含它的方式:

@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryval")

以下是每个请求加载的js文件:

http://localhost:10815/Scripts/jquery-2.0.3.js
http://localhost:10815/Scripts/jquery.unobtrusive-ajax.js
http://localhost:10815/Scripts/jquery.validate.js
http://localhost:10815/Scripts/jquery.validate.unobtrusive.js

在我的控制器中,我检查是否有ModelState.IsValid,如果不是,我返回模型的视图 - 我调试了方法并确定模型状态有错误。

最后在我的视图文件中,我已经包含了:

@Html.ValidationSummary()

产生以下HTML输出:

<div class="validation-summary-valid" data-valmsg-summary="true"><ul><li style="display:none"></li>
</ul></div>

我的问题是,当控制器返回视图时,验证摘要不会改变 - 我不知道什么是错的 - 我错过了什么?

问题已解决 - 我使用了我现在关闭的ajax - 没有ajax就可以正常工作。我想验证总结没有重新加载,因此没有更新html。

3 个答案:

答案 0 :(得分:0)

要使验证生效,您需要拥有名为Test error

的模型属性

编辑:

您需要在模型中放置数据注释。

  public class Contact
    {
        [Required]
        public string MobileNumber { get; set; }
    }

答案 1 :(得分:0)

请参阅this回答。如果定义键,则模型中必须匹配。

答案 2 :(得分:0)

我使用的是现在关闭的ajax - 没有ajax就可以正常工作。我想验证总结没有重新加载,因此没有更新html。