Telerik()。ScriptRegistrar()如何防止加载jquery库?

时间:2011-05-26 15:20:42

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

脚本注册商甚至在

之后加载jquery.validation.min.js
Html.Telerik().ScriptRegistrar().jQuery(false)

有没有办法告诉它不要这样做?

即使我尝试正好加载我需要的东西,也可以这样做:

@Html.Telerik().ScriptRegistrar().jQuery(false).DefaultGroup(g =>
{
    g.Add("telerik.common.min.js");
    g.Add("telerik.tabstrip.min.js");
}

例如,如果我在页面上有一个telerik网格,它将加载所有必要的脚本,包括grid.min,grid.editing和jquery.validate.min。

我更喜欢自己控制它,而不是仅仅为了得到错误,或者如果我忘了定义正确的脚本而无法运行的元素。

如果我尝试使用此代码段:

@Html.Telerik().ScriptRegistrar().jQuery(false).Scripts(s =>
{
    s.Add("telerik.common.min.js");
...

它会忽略web.config中的useTelerikContentDeliveryNetwork="true",并在本地服务器上搜索脚本。我仍然想使用CDN。

UPD:实际上是否有办法使用telerik的CDN来源,但如果由于某种原因它们已关闭,请从项目的服务器加载所有内容?

2 个答案:

答案 0 :(得分:10)

作为对来自搜索引擎的人的这个答案的进一步更新:您现在可以使用以下内容删除jQuery验证以及jQuery:

@Html.Telerik().ScriptRegistrar().jQuery(false).jQueryValidation(false)

答案 1 :(得分:4)

.jQuery(false)确实只能阻止包含jquery.js。它不会影响jquery.validate.js,也从未打算过。目前,当页面中有可编辑的网格时,无法阻止ScriptRegistrar包含jquery.validate.js。

使用Telerik CDN时,没有内置的后备支持。但是,可以实现手动解决方法。像这样:

@(Html.Telerik().ScriptRegistrar())
<script type="text/javascript">
    if (typeof jQuery === "undefined" || typeof $.telerik === "undefined") {
       // the CDN failed for some reason use local files
       document.write("<script src='scripts/telerik.common.min.js'><\/script>");
       document.write("<script src='scripts/telerik.grid.min.js'><\/script>");
       // etc
    }
</script>