试图让Telerik ScriptRegistrar加载Telerik脚本和自定义脚本

时间:2011-08-18 06:01:39

标签: javascript jquery asp.net-mvc-3 telerik telerik-mvc

我在ASP.NET MVC 3 razor应用程序中使用最新版本的Telerik MVC扩展。我还下载了最新版本的jQuery。

我的jQuery文件位于不同的目录中,以及Visual Studio默认的内容。原因是因为我已经下载了最新版本的jQuery jquery-1.6.2.min.js。我将Telerik MVC内容和脚本目录放在不同的目录中。至于我所看到的Telerik脚本需要首先加载jQuery文件。我删除了默认使用ASP.NET MVC应用程序的内容和脚本目录。

Telerik脚本目录:

~/Assets/telerikaspnetmvc/2011.2.712/Scripts/

我的jQuery目录:

~/Assets/JavaScripts/jQuery/

我将ScriptRegistrar更改为以下内容:

@(Html.Telerik().ScriptRegistrar()
   .DefaultGroup(group => group
      .DefaultPath("~/Assets/telerikaspnetmvc/2011.2.712/Scripts/")
      .Compress(true)
   )
   .Scripts(scripts => scripts
      .AddGroup("JavaScriptAssetLocation", group => group
         .DefaultPath("~/Assets/JavaScripts/jQuery/")
         .Add("jquery-1.6.2.min.js")
         .Compress(true)
      )
   )
   .jQuery(false)
)

这给了我一个错误。我交换了2,所以它可以首先读取jQuery,但是它似乎仍然首先加载默认的Telerik JavaScript文件并导致错误。这是更改后的代码:

@(Html.Telerik().ScriptRegistrar()
   .Scripts(scripts => scripts
      .AddGroup("JavaScriptAssetLocation", group => group
         .DefaultPath("~/Assets/JavaScripts/jQuery/")
         .Add("jquery-1.6.2.min.js")
         .Compress(true)
      )
   )
   .DefaultGroup(group => group
      .DefaultPath("~/Assets/telerikaspnetmvc/2011.2.712/Scripts/")
      .Compress(true)
   )
   .jQuery(false)
)

我在这里做错了什么?请提供关于必须如何完成的代码示例。

另一个问题。我是否需要为每个组指定Compress(true)或者是否足够?而jQuery(false)需要指定在哪里?只有在DefaultGroup之后?或者在任何地方?

1 个答案:

答案 0 :(得分:4)

我认为最简单的方法是:

@(Html.Telerik().ScriptRegistrar().DefaultGroup(group => group
  .DefaultPath("~/Assets/telerikaspnetmvc/2011.2.712/Scripts/").Combined(true)
  .Compress(true)).jQuery(false))

很抱歉,如果最终看起来有点压缩 - 代码片段样式拒绝应用任何其他设置。无论如何,一旦你完成了在你的页面的头部注册以下内容:

<script src="@Url.Content("~/Assets/JavaScripts/jQuery/jquery-1.6.2.min.js")" type="text/javascript"></script>

这将正确链接到您自己的jQuery版本,同时确保默认组的DefaultPath已更改。

至于在这里使用压缩,我认为它不会做太多。这实际上只适用于在具有几个脚本的组中使用.Combined(true)(例如Telerik组件的默认组)。如果你只是使用一个文件(jquery-1.6.2.min.js),那真的没有必要。因此,只要您想压缩组合组,请确保使用.Combined(true)(我必须在上面添加它)。这需要为每个小组添加。