封裝JS文件到DLL中並在頁面中調用

通常在ASP.NET,我們常常會用到JS腳本來實現頁面上的很多操作。在頁面中引用JS的方法也是有好幾種。

這裏來介紹一下,如何將JS腳本內嵌到組件(Assembly)中,即DLL中。這樣的做法最大的好處就是能夠保護JavaScript文件的內容,避免JavaScript類的定義被修改。

下面就以一個示例來講解如何操作:

1.打開VS,新建一個WebApplication1項目[這裏新建網站也可以],採用默認設置。

2.在當前解決方案中添加新項目。(類庫: JSLib),如圖:

 封裝JS文件到DLL中並在頁面中調用

添加後,默認的會有一個Class.cs文件,我們將其重命名爲:【ReferenceClientScript.cs】,這在後面我們會用它。

3.由於新建的是類庫,所以要添加引用:System.Web,這在後我們會用到。

4.在JSLib中添加一個JS文件,取默認設置。自動有一個JScript1.js文件。

5.編寫JS腳本【JScript.js】。

我們這裏只是一個簡單的演示,所以腳本代碼儘量簡單。Hello,World!,一段最簡單的類,目的在演示,當然你可以寫的更復雜些。

JSScript.js 代碼:

  1. function Hello()   
  2. {   
  3. alert("Hello,world!");   
  4. }   

6.設置JScript.js屬性->生成操作爲【嵌入的資源】,如圖:

 封裝JS文件到DLL中並在頁面中調用

7.在JSLib項目的AssemblyInfo.cs文件最後添加一行代碼:【注意JSLib.JScript1.js,JSLib是js所在項目的命名空間】

view plaincopy to clipboardprint?
[assembly: WebResource("JSLib.JScript1.js", "text/javascript")] 
[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.最後完成效果圖:

 完成效果圖


本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/Vicent_ren/archive/2010/06/19/5680547.aspx

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章