在程序集中嵌入JS脚本文件

列举一下在程序集中嵌入脚本文件的几种方式:

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的页面的时候,我们会看到如下内容:

在程序集中嵌入JS脚本文件

我这边是打开WebResource_2.axd,会看到我在程序集中编写的脚本内容,

也就是说嵌入程序集的所有脚本文件都是通过请求WebResource_2.axd来获得的,后面的参数

是经过加密的,用于标示当前请求的JS文件。

玩鸟!

你可能感兴趣的:(脚本)