错误:剑道“Something”不是一个function
所以我试图将我的纯HTML / Javascript网站(工作正常)转换为ASP MVC4项目。 我所做的是获取和使用XML和XSLT进行转换。 我最近使用这里的代码来做到这一点
在我的_Layout.cshtml
我使用razor加载资源
@ViewBag.Title ... things... @Scripts.Render("~/bundles/kendoScripts") @Scripts.Render("~/bundles/customScript") @Styles.Render("~/Content/themes/Kendo") @Styles.Render("~/Content/themes/customCSS")
我使用布局的视图非常简单,这就是页面中的所有内容
@using Summ.ExtensionCode @model SumMVC.Models.SummaryModel @{ ViewBag.Title = "_Summary"; Layout = "~/Views/Shared/_Layout.cshtml"; } @Html.RenderXml(Model.ProgramFilename, Model.StylesheetFilename, Model.Parameters)
在@Scripts.Render("~/bundles/customScript")
,是一个JS文件,renderpage.js,它有一些代码$(this).kendoDropDownList();
这是一个选择元素。 但我得到一个错误.kendoDropDownList();
不是一个function。 来自firebug的错误: TypeError: $(...).kendoDropDownList is not a function
,来自GoogleChrome Uncaught TypeError: Object [object Object] has no method 'kendoDropDownList'
。 似乎在我的包中JS文件kendo.all.min.js没有开始加载这里是什么样子
bundles.Add(new ScriptBundle("~/bundles/kendoScripts") .Include("~/Scripts/kendoui/kendo.web.min.js") .Include("~/Scripts/kendoui/kendo.all.min.js") ); .... bundles.Add(new ScriptBundle("~/bundles/customScript") ..... .Include("~/Scripts/SummaryScript/renderpage.js") .... );
我假设在kendo.all.min.js完成加载之前可能正在执行代码,但正如您在上面看到的,renderpage.js是在kendo之后。 任何想法或见解?
UPDATE
当我在head标签中手动加载MVC项目中的资源时,我忘了添加它
....
它工作正常。
UPDATE2
原来没有加载Kendo JS文件。 我检查开发控制台中的资源,并注意到它甚至没有。仔细检查我发现除了一些.min.js
文件之外,所有资源都被加载。 有一些已加载,但有些未加载的是jquery-ui-1.10.3.min.js和jquery.browser.min.js。
我知道这将是一件愚蠢的事。 事实certificate,这是一个MVC4 gothcha。 我不得不重命名我的文件。 显然它不喜欢扩展名为min.js
文件我在这里找到了答案