列举一下在程序集中嵌入脚本文件的几种方式:
1、this.Page.ClientScript.RegisterClientScriptBlock:注册脚本
2、this.Page.ClientScript.RegisterClientScriptInclude:引用脚本(URL地址)
3、this.Page.ClientScript.RegisterClientScriptResource:引用名称(比如:MyAssembly.Js.MyJs.js)
下面我来讲讲用的比较的多:this.Page.ClientScript.RegisterClientScriptResource,在程序集中嵌入脚本文件。
第一步、创建程序集:MyAssembly
第二步、创建JS文件:存放目录为当前程序集下的Js/MyJs.js
第三步、右键MyJs.js点属性,设置“生成操作”为“嵌入的资源”。
第四步、创建一个用户控件:MyControl,用于注册Js
第五步、重写MyControl的OnPreRender事件(不是必须的,可以换其他的加载事件)
/// <summary>
/// 注册验证脚本文件
/// </summary>
/// <param name="e"></param>
protected override void OnPreRender(EventArgs e)
{
this.Page.ClientScript.RegisterClientScriptResource(typeof(MyControl),
"MyAssembly.Js.MyJs.js");
base.OnPreRender(e);
}
第六步、在当前程序集的AssemblyInfo.cs下添加一个标签
[assembly: System.Web.UI.WebResource("MyAssembly.Js.MyJs.js", "application/x-javascript")]
至此,在页面中使用MyControl的时候,就可以自动输出js文件了。
下面我为大家介绍一个比较重要的东西,当我们在调试带有MyControl的页面的时候,我们会看到如下内容:
我这边是打开WebResource_2.axd,会看到我在程序集中编写的脚本内容,
也就是说嵌入程序集的所有脚本文件都是通过请求WebResource_2.axd来获得的,后面的参数
是经过加密的,用于标示当前请求的JS文件。
玩鸟!