Asp.net ToolkitScriptManager:一些脚本文件是如何定位的?
我有一个使用标准Internet模板的ASP.NET4.5WebForm项目。包含在站点中。主站点是:Asp.net ToolkitScriptManager:一些脚本文件是如何定位的?,asp.net,webforms,Asp.net,Webforms,我有一个使用标准Internet模板的ASP.NET4.5WebForm项目。包含在站点中。主站点是: <ajaxToolkit:ToolkitScriptManager runat="server"> <Scripts> <%--Framework Scripts--%> <asp:ScriptReference Name="jquery" /> <!-- ??? --> &
<ajaxToolkit:ToolkitScriptManager runat="server">
<Scripts>
<%--Framework Scripts--%>
<asp:ScriptReference Name="jquery" /> <!-- ??? -->
<asp:ScriptReference Name="jquery.ui.combined" /> <!-- ?? -->
<asp:ScriptReference Name="WebForms.js" Path="~/Scripts/WebForms/WebForms.js" />
...
它描述了如何在4.5 Web表单应用程序中注册jQuery脚本。代码示例准确地显示了jQuery脚本的选定版本是如何链接的。它说它是在应用程序启动之前运行的PreApplicationStart
方法中执行的。我在整个项目中搜索了“PreApplicationStart”,但什么也没找到。有人知道它在哪里吗?来自.Net framework 4.0 ScriptManager支持脚本映射功能。
因此,您可以使用脚本路径注册(关联)任何名称(即使是您自己的脚本)。主要的好处是,您可以指定用于调试、发布和配置的脚本。您还可以指定脚本的CDN位置。ScriptManager将在运行时为当前配置选择正确的配置
基本上,脚本映射在应用程序启动中注册,如下例所示:
void Application_Start(object sender, EventArgs e) {
// map a simple name to a path
ScriptManager.ScriptResourceMapping.AddDefinition("jQuery", new ScriptResourceDefinition {
Path = "~/scripts/jquery-1.7.1.min.js",
DebugPath = "~/scripts/jquery-1.7.1.js",
CdnPath = "http://ajax.microsoft.com/ajax/jQuery/jquery-1.7.1.min.js",
CdnDebugPath = "http://ajax.microsoft.com/ajax/jQuery/jquery-1.7.1.js"
});
}
[EditorBrowsable(EditorBrowsableState.Never)]
public static class PreApplicationStartCode
{
public static void Start()
{
string str = "2.0.3";
ScriptManager.ScriptResourceMapping.AddDefinition("jquery", new ScriptResourceDefinition()
{
Path = "~/Scripts/jquery-" + str + ".min.js",
DebugPath = "~/Scripts/jquery-" + str + ".js",
CdnPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-" + str + ".min.js",
CdnDebugPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-" + str + ".js",
CdnSupportsSecureConnection = true,
LoadSuccessExpression = "window.jQuery"
});
}
}
编辑:
在ASP.NET 4中,添加了预应用程序启动方法的概念,程序集可以使用该方法在appdomain中早期执行代码,而无需任何配置。
所以,注册映射是由AspNet.ScriptManager.jQuery和AspNet.ScriptManager.jQueryUI库添加的,默认情况下,这些库是通过nuget添加到模板中的
基本上,该库由一个类组成,如以下示例所示:
void Application_Start(object sender, EventArgs e) {
// map a simple name to a path
ScriptManager.ScriptResourceMapping.AddDefinition("jQuery", new ScriptResourceDefinition {
Path = "~/scripts/jquery-1.7.1.min.js",
DebugPath = "~/scripts/jquery-1.7.1.js",
CdnPath = "http://ajax.microsoft.com/ajax/jQuery/jquery-1.7.1.min.js",
CdnDebugPath = "http://ajax.microsoft.com/ajax/jQuery/jquery-1.7.1.js"
});
}
[EditorBrowsable(EditorBrowsableState.Never)]
public static class PreApplicationStartCode
{
public static void Start()
{
string str = "2.0.3";
ScriptManager.ScriptResourceMapping.AddDefinition("jquery", new ScriptResourceDefinition()
{
Path = "~/Scripts/jquery-" + str + ".min.js",
DebugPath = "~/Scripts/jquery-" + str + ".js",
CdnPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-" + str + ".min.js",
CdnDebugPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-" + str + ".js",
CdnSupportsSecureConnection = true,
LoadSuccessExpression = "window.jQuery"
});
}
}
来自.Net framework 4.0的ScriptManager支持脚本映射功能。
因此,您可以使用脚本路径注册(关联)任何名称(即使是您自己的脚本)。主要的好处是,您可以指定用于调试、发布和配置的脚本。您还可以指定脚本的CDN位置。ScriptManager将在运行时为当前配置选择正确的配置
基本上,脚本映射在应用程序启动中注册,如下例所示:
void Application_Start(object sender, EventArgs e) {
// map a simple name to a path
ScriptManager.ScriptResourceMapping.AddDefinition("jQuery", new ScriptResourceDefinition {
Path = "~/scripts/jquery-1.7.1.min.js",
DebugPath = "~/scripts/jquery-1.7.1.js",
CdnPath = "http://ajax.microsoft.com/ajax/jQuery/jquery-1.7.1.min.js",
CdnDebugPath = "http://ajax.microsoft.com/ajax/jQuery/jquery-1.7.1.js"
});
}
[EditorBrowsable(EditorBrowsableState.Never)]
public static class PreApplicationStartCode
{
public static void Start()
{
string str = "2.0.3";
ScriptManager.ScriptResourceMapping.AddDefinition("jquery", new ScriptResourceDefinition()
{
Path = "~/Scripts/jquery-" + str + ".min.js",
DebugPath = "~/Scripts/jquery-" + str + ".js",
CdnPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-" + str + ".min.js",
CdnDebugPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-" + str + ".js",
CdnSupportsSecureConnection = true,
LoadSuccessExpression = "window.jQuery"
});
}
}
编辑:
在ASP.NET 4中,添加了预应用程序启动方法的概念,程序集可以使用该方法在appdomain中早期执行代码,而无需任何配置。
所以,注册映射是由AspNet.ScriptManager.jQuery和AspNet.ScriptManager.jQueryUI库添加的,默认情况下,这些库是通过nuget添加到模板中的
基本上,该库由一个类组成,如以下示例所示:
void Application_Start(object sender, EventArgs e) {
// map a simple name to a path
ScriptManager.ScriptResourceMapping.AddDefinition("jQuery", new ScriptResourceDefinition {
Path = "~/scripts/jquery-1.7.1.min.js",
DebugPath = "~/scripts/jquery-1.7.1.js",
CdnPath = "http://ajax.microsoft.com/ajax/jQuery/jquery-1.7.1.min.js",
CdnDebugPath = "http://ajax.microsoft.com/ajax/jQuery/jquery-1.7.1.js"
});
}
[EditorBrowsable(EditorBrowsableState.Never)]
public static class PreApplicationStartCode
{
public static void Start()
{
string str = "2.0.3";
ScriptManager.ScriptResourceMapping.AddDefinition("jquery", new ScriptResourceDefinition()
{
Path = "~/Scripts/jquery-" + str + ".min.js",
DebugPath = "~/Scripts/jquery-" + str + ".js",
CdnPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-" + str + ".min.js",
CdnDebugPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-" + str + ".js",
CdnSupportsSecureConnection = true,
LoadSuccessExpression = "window.jQuery"
});
}
}
谢谢我搜索了整个项目,但找不到与上面类似的东西。我在packages.config中找到了一些“映射”,不是针对Nuget的吗?Komilov:我找到了这篇文章(),它准确地解释了jQuery脚本是如何在ASP.NET 4.5 Webform应用程序中注册的(类似于上面的代码段)。它表示注册是在应用程序的PreApplicationStart方法中完成的,该方法甚至在应用程序启动之前执行。我在整个项目中搜索字符串“PreApplicationStart”,但找不到它。有人知道这在哪里吗?谢谢。您知道此文件位于哪个文件中吗?此文件不在文件中。此映射由项目引用的dll注册。此dll放置在packages\AspNet.ScriptManager.jQuery.1.7.1\lib\net45中。如果需要更新jQuery版本,请根据nuget包更新“AspNet.ScriptManager.jQuery”。我明白了。我想它在bin\AspNet.ScriptManager.jQuery.dll中。NuGet package manager会在安装新版本时更新此内容。谢谢。我搜索了整个项目,但找不到与上面类似的东西。我在packages.config中找到了一些“映射”,不是针对Nuget的吗?Komilov:我找到了这篇文章(),它准确地解释了jQuery脚本是如何在ASP.NET 4.5 Webform应用程序中注册的(类似于上面的代码段)。它表示注册是在应用程序的PreApplicationStart方法中完成的,该方法甚至在应用程序启动之前执行。我在整个项目中搜索字符串“PreApplicationStart”,但找不到它。有人知道这在哪里吗?谢谢。您知道此文件位于哪个文件中吗?此文件不在文件中。此映射由项目引用的dll注册。此dll放置在packages\AspNet.ScriptManager.jQuery.1.7.1\lib\net45中。如果需要更新jQuery版本,请根据nuget包更新“AspNet.ScriptManager.jQuery”。我明白了。我想它在bin\AspNet.ScriptManager.jQuery.dll中。每当安装新版本时,NuGet package manager都会更新此版本。