MVC应用程序中的JQuery控件

时间:2014-02-12 16:59:53

标签: c# javascript jquery asp.net-mvc jquery-ui

这可能是一个非常简单的问题,但我已经尝试过查找,但必须遗漏一些显而易见的事情,jquery对我来说是非常新的。

我正在努力让jquery DateTimePicker正常工作,但我一直遇到以下异常:

0x800a138f - Microsoft JScript runtime error: The value of the property '$' is null or undefined, not a Function object

这发生在我得到的代码上:

<script type="text/javascript">
    $(function() {
        $('#StartDateTime').datepicker();
        $('#EndDateTime').datepicker();
    });
</script>

Start和EndDateTime都是我放在View上的输入控件。

在我的脚本中,我有很多jquery引用,我认为这些引用有用,例如: jQuery的UI,1.8.24.js jQuery的UI,1.8.24.min.js jQuery的UI的timepicker-addon.js 的jquery-ui.min.js

我尝试在Global.asax.cs页面中添加时间选择器作为BundleConfig的附加选项,但这也不起作用。

public static void RegisterBundles(BundleCollection bundles)
{
    bundles.Add(new ScriptBundle("~/bundles/jquery").Include("~/Scripts/jquery-{version}.js"));

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

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

    bundles.Add(new ScriptBundle("~/bundles/jquery-ui-timepicker-addon").Include("~/Scripts/jquery-ui-timepicker-addon*")); // Added by me

}

显然我错过了什么,但我想不出来。任何人都可以发现任何非常明显的东西吗?

2 个答案:

答案 0 :(得分:1)

在您的引用列表中,您缺少主jquery引用。它无法识别$这一事实表明这是您的问题。添加它并在其他jquery脚本之上引用它(如果你已经拥有它,请确保它是第一个,因为所有其他jquery库将依赖它)。

答案 1 :(得分:0)

您需要添加对核心jquery库的引用 BEFORE ,您将引用添加到jquery-ui-timepicker-addon像这样

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

原因是您的加载项在jquery核心库上有依赖,因此需要加载 AFTER 引用jquery核心库。