zoukankan      html  css  js  c++  java
  • ASP.NET封装JS文件到DLL中并在页面中调用

      通常在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
      {  www.yzjjx.com
      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" %> <%@ Register Assembly="JSLib" Namespace="JSLib" TagPrefix="JSLibInstance" %>

     

      11.引用脚本。

     

    以下是代码片段:
    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" %>  yzyedu.com

    <%@ 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>

  • 相关阅读:
    Bootstrap使用
    Gulp
    Less和Sass
    ECMAScript6语法重点(二)
    deepin scrot-- linux下的截图工具
    iframe获取父、子窗口的方法
    测试总结--同步或异步处理过程中常见的问题
    测试总结--兼容性
    测试总结--时间/金额类字段需要关注的点
    测试总结--系统调用链路发生变更,如何评估测试范围
  • 原文地址:https://www.cnblogs.com/haosola/p/1953851.html
Copyright © 2011-2022 走看看