我正在将我在Visual Studio 2012中构建的Web应用程序项目迁移到Visual Studio 2013中的新ASP.NET Web应用程序(Web窗体)(4.5)。我从阅读中了解到新结构包含jQuery 1.10。 2在默认的Site.Master中,因此,任何继承内容页面。 我有一个数据表,在2012版本中构建并正常工作。但是,当将代码移动到2013年时,我遇到了一堆问题。第一个是: 0x800a1391 - JavaScript运行时错误:'$'未定义 所以,我想也许它不像我预期的那样包含jQuery I.所以我添加了“
<script src="/Scripts/jquery-1.10.2.min.js" type="text/javascript"></script>
使用默认项目中的jquery文件。这给了我错误:
0x800a01b6 - JavaScript运行时错误:对象不支持属性或方法'dataTable'
这是预料之中的,因为我还没有参考。所以我添加了我用于2012年的相同文件:
<script src="/Scripts/jquery.dataTables.min.js"></script>
没效果。同样的错误。所以我把它换成了:
<script src="http://ajax.aspnetcdn.com/ajax/jquery.dataTables/1.9.4/jquery.dataTables.min.js" type="text/javascript"></script>
再一次,没有效果。所以,很沮丧,我添加了一个新的Web表单(不是来自Master页面)。我输入了一个简单的DataTable,并用原始文件运行它:
<script src="/js/jquery-1.9.1.js" type="text/javascript"></script>
和!它没用......最后一条沟,我投入了:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" type="text/javascript"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="http://ajax.aspnetcdn.com/ajax/jquery.dataTables/1.9.4/jquery.dataTables.min.js" type="text/javascript"></script>
它工作了!我不知道为什么,但它有效!所以我把这些行放到原来的内容页面中然后就失败了。同样,不知道DataTable是什么。有谁知道出了什么问题?
提前致谢!
答案 0 :(得分:0)
问题可能是文件的路径。如果您将文件放在子文件夹中,则需要在添加java脚本或jQuery文件时使用resolve url
。
<script type="text/javascript" src='<%= ResolveUrl("~/Scripts/jquery-1.10.2.min.js")%>'>
</script>
以下是一些很好的链接
答案 1 :(得分:0)
一位朋友找到了答案。显然,使用ScriptManager&amp;时,所有jQuery都必须进入BODY标记内。与开箱即用的Web应用程序的情况一样。我创建了另一个内容标记并将其放在母版页的HEAD部分中,这样我就可以放入所有jQuery和javascript例程。一旦我把它移到BODY,它对jQuery很满意。 还有用于jQuery,jQuery.UI和jQuery.Datatables的NuGet包,它们将最新版本集成到您的Web应用程序中。