C# 不支持JQuery UI sortable()方法错误

C# 不支持JQuery UI sortable()方法错误,c#,html,asp.net-mvc,jquery-ui,asp.net-mvc-4,C#,Html,Asp.net Mvc,Jquery Ui,Asp.net Mvc 4,我正在开发一个ASP.NET MVC 4 web应用程序,它使用最新的JQuery和JQuery UI库,并自动对它们进行引用(在_Layout.cshtml页面中) 我一直在按照教程在表上实现拖放重新排序功能 但是,即使我在视图模型上显式地添加对最新jqueryui文件的引用(如 <script src="/Scripts/jquery-ui-1.10.2.min.js" type="text/javascript"></script> sortable()方法不

我正在开发一个ASP.NET MVC 4 web应用程序,它使用最新的JQuery和JQuery UI库,并自动对它们进行引用(在_Layout.cshtml页面中)

我一直在按照教程在表上实现拖放重新排序功能

但是,即使我在视图模型上显式地添加对最新jqueryui文件的引用(如

<script src="/Scripts/jquery-ui-1.10.2.min.js" type="text/javascript"></script>

sortable()方法不起作用。它不会显示在VisualStudioIntelliSense中,并且在运行时也不起作用。在Internet Explorer(或任何浏览器)上运行时,我只会得到一个错误,即“对象不支持属性或方法“sortable”

以下是我尝试使用该方法的方式:

        <script type="text/javascript">
        $(document).ready(function()
        {
            $("#clueTable tbody").sortable();
        });
        </script>

$(文档).ready(函数()
{
$(“#clueTable tbody”).sortable();
});
我从Intellisense中注意到,它从JQuery UI文件中找到了一个属性“sortables”和“sort”,但没有“sortable”


所以这个参考看起来不错,而且肯定是最新的jQueryUI代码(我通过获取最新的文件验证了这一点),所以我对这个有点迷惑

在_Layout.cshtml中,我似乎在某个时候手动引用了JQuery和JQuery UI脚本,忘记了这些脚本已经在包中呈现,例如

@Scripts.Render("~/bundles/jquery")
我正确地引用了正确的脚本,但因为它们再次被加载,我认为它们正在销毁文件的第一个实例,包括依赖于加载的JQuery文件的JQuery UI代码

我还不明白的是,默认情况下,ASP.NET MVC 4应用程序不会呈现JQuery UI框架,即使项目中存在文件,并且BundleConfig.cs文件中创建了脚本包

因此,为了解决我的问题,我删除了所有手动引用,以便只呈现捆绑包,并添加了以下行以呈现我的_Layout.cshtml文件头中的JQuery UI代码:

@Scripts.Render("~/bundles/jqueryui"); 
捆绑包的工作方式是Global.asax文件调用BundleConfig.cs的“RegisterBundles”方法,该方法通过搜索“Scripts”文件夹中的相关JavaScript文件以及您告诉它查看的任何其他位置来创建新的脚本捆绑包

然后,要从HTML加载脚本文件,必须使用@script.render()呈现它们,并提供脚本包的名称作为参数(例如“~/bundles/jqueryui”)


要呈现网站每个页面上的所有脚本,可以将其添加到_Layout.cshtml文件中,该文件应用于每个页面

我将使用Fiddler或IE开发工具网络面板来验证是否加载了jQueryUI脚本文件。不要依赖VS智能感知。下面是一个JSFIDLE,其中包含您的精确代码,运行良好。(使用jQueryUI1.10.2)。肯定还有别的事情发生。谢谢@BNL,我有点忘记了开发工具的存在!Chrome的开发工具似乎比InternetExplorer提供了更多的细节,所以我用它来准确地了解到底发生了什么。