所以我正在尝试将我的纯 HTML/Javascript 站点(工作正常)转换为 ASP MVC4 项目。我所做的是获取 XML 并使用 XSLT 进行转换。我真的使用代码 from here这样做
在我的 _Layout.cshtml
中,我使用 razor 加载资源
<!DOCTYPE html>
<html>
<head>
<title>@ViewBag.Title</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
... things...
@Scripts.Render("~/bundles/kendoScripts")
@Scripts.Render("~/bundles/customScript")
@Styles.Render("~/Content/themes/Kendo")
@Styles.Render("~/Content/themes/customCSS")
我使用布局的 View 非常简单,这就是页面中的全部内容
@using Summ.ExtensionCode
@model SumMVC.Models.SummaryModel
@{
ViewBag.Title = "_Summary";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<div data-role="content">
@Html.RenderXml(Model.ProgramFilename, Model.StylesheetFilename, Model.Parameters)
</div>
在 @Scripts.Render("~/bundles/customScript")
中,是一个 JS 文件,renderpage.js 有这段代码 $(this).kendoDropDownList() ;
这是一个选择元素。但是我收到一个错误,指出 .kendoDropDownList();
不是一个函数。来自 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 之后执行。有什么想法或见解吗?
更新
我在head标签中手动加载MVC项目中的资源时忘记加上了
<script type="text/javascript" src="~/Scripts/kendoui/kendo.web.min.js"></script>
<script type="text/javascript" src="~/Scripts/kendoui/kendo.all.min.js"></script>
....
<script type="text/javascript" src="~/Scripts/ExecSummaryScript/renderpage.js"></script>
它工作正常。
更新2
原来根本没有加载 Kendo JS 文件。我检查了开发控制台中的资源,发现它甚至不存在。仔细检查后,我注意到除了一些 .min.js
文件外,所有资源都已加载。有一些已加载但未加载的是 jquery-ui-1.10.3.min.js 和 jquery.browser.min.js。
最佳答案
我知道这会很愚蠢。事实证明这是一个 MVC4 gothcha。我不得不重命名我的文件。显然它不喜欢扩展名为 min.js
I found the answer here 的文件
关于javascript - 错误 : Kendo"Something"is not a function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20912567/