错误:剑道“Something”不是一个功能

时间:2014-01-03 20:57:24

标签: javascript jquery asp.net-mvc-4 xslt kendo-ui

所以我试图将我的纯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")   

我使用布局的视图非常简单,这就是页面中的所有内容

@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();,其中这是一个select元素。但是我收到.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之后。任何想法或见解?

更新

当我在头标记

中手动加载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>

它工作正常。

UPDATE2

原来没有加载Kendo JS文件。我检查了开发控制台中的资源,并注意到它甚至没有。仔细检查后,我注意到除了一些.min.js文件外,所有资源都已加载。有一些已加载,但有些未加载的是jquery-ui-1.10.3.min.js和jquery.browser.min.js。

1 个答案:

答案 0 :(得分:2)

我知道这将是一件愚蠢的事。事实证明,这是一个MVC4 gothcha。我不得不重命名我的文件。显然,它不喜欢扩展名为min.js I found the answer here

的文件