【问题标题】:Fresh MVC 3 project giving me wierd unobtrusive validation script error新鲜的 MVC 3 项目给了我奇怪的不显眼的验证脚本错误
【发布时间】:2012-06-01 05:41:15
【问题描述】:

我刚刚创建了一个新的 MVC 3 项目并使用包管理器更新了所有已安装的包,但是我收到以下错误:

Microsoft JScript 运行时错误:无法设置属性值 'unobtrusive': 对象为空或未定义

相关代码如下:

<!DOCTYPE html>

<html lang="en">
    <head>
        <meta charset="utf-8" />
        <title>@ViewBag.Title</title>

        <link href="@Url.Content("~/Content/Reset.css")" rel="stylesheet" type="text/css" />
        <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />

        <script src="@Url.Content("~/Scripts/modernizr-1.7.min.js")" type="text/javascript"></script>

        <script src="@Url.Content("~/Scripts/jquery-1.7.2.min.js")" type="text/javascript"></script>
        <script src="@Url.Content("~/Scripts/jquery-ui-1.8.20.min.js")" type="text/javascript"></script>

        <script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
        <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"></script>
    </head>

    <body>
        @RenderBody()
    </body>
</html>

来自错误发生区域的javascript sn-p:

$jQval.unobtrusive = {
        adapters: [],

        parseElement: function (element, skipAttach) {
            /// <summary>
            /// Parses a single HTML element for unobtrusive validation attributes.
            /// </summary>
            /// <param name="element" domElement="true">The HTML element to be parsed.</param>
            /// <param name="skipAttach" type="Boolean">[Optional] true to skip attaching the
            /// validation to the form. If parsing just this single element, you should specify true.
            /// If parsing several elements, you should specify false, and manually attach the validation
            /// to the form when you are finished. The default is false.</param>
            var $element = $(element),
                form = $element.parents("form")[0],
                valInfo, rules, messages;

            if (!form) {  // Cannot do client-side validation without a form
                return;
            }...

谁能告诉我为什么会发生这个错误以及如何解决它?我只是缺少对所需脚本的引用吗?

谢谢, 亚历克斯。

【问题讨论】:

    标签: c# javascript asp.net-mvc-3 .net-4.0 unobtrusive-validation


    【解决方案1】:

    您还需要包含 JQuery Validate 脚本

    【讨论】:

      【解决方案2】:

      您应该在jquery.validate.unobtrusive.js 之前添加jquery.validate.js

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

      【讨论】:

      • 谢谢@archil 所以在 MVC4 中,当你遇到这个问题时,你应该将 bundle 语句重新排序为: bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include("~/Scripts /jquery.validate*", "~/Scripts/jquery.validate.unobtrusive.js", "~/Scripts/jquery.unobtrusive*"));
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多