ASP.NET 封装JS文件到DLL中并在页面中调用

http://www.cnblogs.com/yangyunzhou/archive/2011/01/20/1939781.html

 

通常在ASP.NET,我们常常会用到JS脚本来实现页面上的很多操作。在页面中引用JS的方法也是有好几种。

这里来介绍一下,如何将JS脚本内嵌到组件(Assembly)中,即DLL中。这样的做法最大的好处就是能够保护JavaScript文件的内容,避免JavaScript类的定义被修改。
下面就以一个示例来讲解如何操作:
1.打开VS,新建一个WebApplication1项目[这里新建网站也可以],采用默认设置。

2.在当前解决方案中添加新项目。(类库: JSLib)

添加后,默认的会有一个Class.cs文件,我们将其重命名为:【ReferenceClientScript.cs】,这在后面我们会用它。

3.由于新建的是类库,所以要添加引用:System.Web,这在后我们会用到。

4.在JSLib中添加一个JS文件,取默认设置。自动有一个JScript1.js文件。

5.编写JS脚本【JScript.js】。

我们这里只是一个简单的演示,所以脚本代码尽量简单。Hello,World!,一段最简单的类,目的在演示,当然你可以写的更复杂些。

JSScript.js 代码:

function Hello(){   

alert("Hello,world!");   

}

6.设置JScript.js属性->生成操作为【嵌入的资源】

7.在JSLib项目的AssemblyInfo.cs文件最后添加一行代码:【注意JSLib.JScript1.js,JSLib是js所在项目的命名空间】

[assembly: WebResource("JSLib.JScript1.js", "text/javascript")] 

8.编写JS脚本注册类【ReferenceClientScript.cs】。

ReferenceClientScript.cs 代码:

using System;   

using System.Collections.Generic;   

using System.Linq;   

using System.Text;   

namespace JSLib   

{   

    public class ReferenceClientScript : System.Web.UI.WebControls.WebControl   

    {   

        protected override void OnPreRender(EventArgs e)   

        {   

            if (this.Page != null)   

            {   

                ClientScriptManager manager = this.Page.ClientScript;   

                manager.RegisterClientScriptResource(typeof(ReferenceClientScript), "JSLib.JScript1.js");   

            }   

            base.OnPreRender(e);   

        }   

    }   

}

9.在WebApplication1中添加项目引用。编译后生成JSLib.dll

10.在要调用脚本的页面注册JSLib.dll

<%@ Register Assembly="JSLib" Namespace="JSLib" TagPrefix="JSLibInstance" %>

11.引用脚本。

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" %>   

<%@ Register Assembly="JSLib" Namespace="JSLib" TagPrefix="JSLibInstance" %>   

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">   

<html xmlns="http://www.w3.org/1999/xhtml" >   

<head runat="server">   

    <title>无标题页</title>   

</head>   

<body>   

    <form id="form1" runat="server">   

    <asp:ScriptManager ID="ScriptManager1" runat="server">   

    </asp:ScriptManager>   

    <div>       

        <JSLibInstance:ReferenceClientScript id="js1" runat="server"></JSLibInstance:ReferenceClientScript>   

        JS封装到DLL 并在页面调用 Demo。<br />   

        <input id="Button1" type="button" value="button" οnclick="Hello();" />   

    </div>   

    </form>   

</body>   

</html>

12.完成

13.查看源代码会发现js引用都被封装成.axd。如:<script src="/WebResource.axd?d=oJeV8gYSmjAsGIcbJV7ux0vxGpRb1JuUde0qLBlln9w1&t=634125776275000000" type="text/javascript"></script>

<script src="/ScriptResource.axd?d=PpmY9YsXYmWQq6liGNs5LuMNLtDhVsvPqe3CTCI27BNLCLfislppBnoCcro5r89BmQs8Z6mSbRu0fueDIrPViqaI6EEX1sZEHY62mtMOG401&t=7528725e" type="text/javascript"></script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值