jquery不引人注目
我试图将unobtrusive.js包含到我的mvc3视图中,但是当我这样做时,我会在视图呈现时出现一堆错误。 例外是在不显眼的脚本中,它在任何地方检查任何与“未定义”的内容,就像这一行一样
if(message !== undefined) //Compare against undefined, because an empty message is legal
我得到的错误是
Microsoft JScript运行时错误:’undefined’为null或不是对象
这是我的视图的脚本声明。
您需要使用jquery.validate.min.js
而不是jquery.validate.unobtrusive.js
如果你想:
- 使用.NET模型validation(数据注释属性)
- 使用html5数据属性而不是非语义css类
你需要两个:jquery.validate和jquery.validate.unobtrusive
脚本参考:
注意:在此示例中,js文件位于项目/站点的“public”文件夹下,但如果可能,您使用Microsoft的Google CDN地址。
模型:
public class PimpModel { [Required] [StringLength(20)] [DisplayName("Pimp Name")] public string PimpName { get; set; } }
Web.config设置
查看表单代码
@model SomeProject.Models.PimpModel @{ View.Title = "Index"; Layout = "~/Views/Shared/_Layout.cshtml"; Html.EnableUnobtrusiveJavaScript(true); } Pimp
@using (Html.BeginForm()) { @Html.ValidationSummary(true) }
html助手以htmlforms生成数据属性,这些属性由不显眼的库使用,不显眼的库使用validation库中的函数,这一切都是快乐的日子……
确保您的配置中包含以下内容。
虽然jQuery是开源的,但是’jquery.validate.unobtrusive.min.js’库是由Microsoft提供的 (如我的js文件顶部所示):
/* ** Unobtrusive validation support library for jQuery and jQuery Validate ** Copyright (C) Microsoft Corporation. All rights reserved. */
尝试替换库以使用新的替换jquery.validate.min.js
一种方法是使用Visual Studio的NuGet包管理器 ,如下所示:
- 右键单击Project的References文件夹
- 选择“添加库包参考…”
- 窗口打开后,从左侧边栏菜单中选择“在线” 。
- 在右上角,输入‘jquery.validate’并按Enter键。
- 找到“jQueryvalidation”并单击“安装”按钮。
- 更改代码以使用新库名称“jquery.validate.min.js”
我测试了这个并且我的客户端字段validation似乎在Visual Studio中调试时没有烦人的exception。