Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net Ajax控制工具包:既然ToolkitScriptManager已经过时,如何只加载所需的脚本_Asp.net_Webforms_Ajaxcontroltoolkit - Fatal编程技术网

Asp.net Ajax控制工具包:既然ToolkitScriptManager已经过时,如何只加载所需的脚本

Asp.net Ajax控制工具包:既然ToolkitScriptManager已经过时,如何只加载所需的脚本,asp.net,webforms,ajaxcontroltoolkit,Asp.net,Webforms,Ajaxcontroltoolkit,我们正在使用Ajax控制工具包。 我们安装了这个: 我们已经使用ACT进行绑定,方法是在web配置中进行设置: <asp:ScriptManager ID="sm" runat="server" EnableCdn="true" > <Scripts> <asp:ScriptReference Path="~/Scripts/AjaxControlToolkit/Bundle" />

我们正在使用Ajax控制工具包。 我们安装了这个:

我们已经使用ACT进行绑定,方法是在web配置中进行设置:

<asp:ScriptManager ID="sm" runat="server" EnableCdn="true" >
            <Scripts>
                <asp:ScriptReference Path="~/Scripts/AjaxControlToolkit/Bundle" />
            </Scripts>
        </asp:ScriptManager>
在主页上,我还有:

<%: System.Web.Optimization.Scripts.Render("~/Script/js-master") %>

我故意遗漏了SliderExtender(所以它不应该工作),但它仍然在工作,所以我猜所有Ajax控件工具包脚本都已加载

Web配置,也包括:

<compilation debug="false" targetFramework="4.5.1">


实际上,你可以。保留此功能是为了向后兼容


您不再需要显式地指定它。Toolkit扫描应用程序根目录中的
AjaxControlToolkit.config
文件(特别是
HttpRuntime.AppDomainAppPath
),并从中生成控制包。

除了js脚本之外,Toolkit还将加载一些CSS文件。要防止加载这些带有css和图像内容的WebResource.axd,可以使用web.config:

<configSections>
    <section name="ajaxControlToolkit" type="AjaxControlToolkit.AjaxControlToolkitConfigSection, AjaxControlToolkit" requirePermission="false"/>
</configSections>

<ajaxControlToolkit renderStyleLinks="false" />

要查看文件的内容,请在测试项目中安装nuget包
AjaxControlToolkit.StaticResources
,其中包含所有图像、css和js


例如,我使用CalendarExtender,但我不希望额外的http请求来获取左右箭头,因此我已经定制了css,以使用我自己的通用sprite。与Combobox向下箭头相同,我实际上使用引导插入符号字符/样式而不是图像。

我的根目录中还没有AjaxControlToolkit.config。我将添加它并指定我想要的脚本。要不要解释更多关于HttpRuntime.AppDomainAppPath设置的信息?我想,这是在web配置中配置的。不,它是硬编码的值:您需要将此捆绑包指定为脚本,就像默认捆绑包一样:请记住在捆绑包名称之前添加
控件
:您可以在
脚本管理器
中指定
脚本引用
项,这是使工具箱正常工作所必需的。在大多数情况下,它位于母版页中。您可以再次检查以查看
ScriptReference
实体语法。将bundle添加到BundleTable只是告诉我们可以使用它,但不会将任何bundle呈现到页面。如果您在
AjaxBundle
之后命名ControlBundle,则路径应该类似于
~/Scripts/AjaxControlToolkit/AjaxBundleBundle
。另外,请检查您没有其他绑定项,如
~/Scripts/AjaxControlToolkit/bundle
,因此脚本可能会被加载两次。您不需要显式地将
ScriptBundle
添加到
BundleTable
中。您可以检查浏览器的开发人员控制台中实际加载了哪些脚本吗?也可能是您加载了CDN包。
<%: System.Web.Optimization.Scripts.Render("~/Script/js-master") %>
<compilation debug="false" targetFramework="4.5.1">
<configSections>
    <section name="ajaxControlToolkit" type="AjaxControlToolkit.AjaxControlToolkitConfigSection, AjaxControlToolkit" requirePermission="false"/>
</configSections>

<ajaxControlToolkit renderStyleLinks="false" />