zoukankan      html  css  js  c++  java
  • C#中JS封装调用

     

    通常在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" onclick="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>

  • 相关阅读:
    [日本语]自动词和他动词区别的重要性
    [日本语]授受关系动词总结
    [日本语]至少すくなく(と)も
    python3: 文件与IO
    python3: 迭代器与生成器(1)
    python3: 数字日期和时间(2)
    python3: 数字日期和时间(1)
    python3: 字符串和文本(4)
    Python Frame
    python3: 字符串和文本(3)
  • 原文地址:https://www.cnblogs.com/moss_tan_jun/p/1941132.html
Copyright © 2011-2022 走看看