封装JS文件到DLL中并在页面中调用
2010-08-25 15:30
411 查看
通常在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所在项目的命名空间】
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" onclick="Hello();" />
</div>
</form>
</body>
</html>
12.最后完成效果图:
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/Vicent_ren/archive/2010/06/19/5680547.aspx
这里来介绍一下,如何将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所在项目的命名空间】
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" onclick="Hello();" />
</div>
</form>
</body>
</html>
12.最后完成效果图:
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/Vicent_ren/archive/2010/06/19/5680547.aspx
相关文章推荐
- ASP.NET封装JS文件到DLL中并在页面中调用
- 封装JS文件到DLL中并在页面中调用
- ASP.NET 封装JS文件到DLL中并在页面中调用
- 把js文件编译成dll供页面调用的方法
- 如何把.js文件编译成dll供页面调用
- 如何把.js文件编译成dll供页面调用
- 如何把.js文件编译成dll供页面调用?
- 如何把js文件编译成dll供页面调用
- 如何把.js文件编译成dll供页面调用?
- 如何把.js文件编译成dll供页面调用[转]
- 如何把.js文件编译成dll供页面调用
- 把js文件编译成dll供页面调用的方法
- jsp页面如何调用多个js文件,css文件一起调用
- jsp页面如何调用多个js文件一起调用
- JS-【同页面多次调用】tab选项卡封装
- 在jsp页面中调用js文件
- 使用SiteMesh(2.4.2) ,被装饰页面导入的外部js文件无法调用的问题
- asp.net页面中调用js文件注意事项
- JS-【同页面多次调用】轮播特效封装-json传多个参数
- 页面编码和js 文件调用问题