using System
using System.Web
namespace ajax
{
public class process:IHttpHandler
{
public bool IsReusable
{
get { return true}
}
public void ProcessRequest(HttpContext context)
{
context.Response.CacheControl = "no-cache"
context.Response.Write(DateTime.Now)
}
}
}
然后编译为ajax.dll
接着在web.config中添加
<configuration>
//IIS6
<system.web>
<httpHandlers>
<add verb="*" type="ajax.process,ajax" path="ajax.aspx"/>
</httpHandlers>
</system.web>
//IIS7
<system.webServer>
<handlers>
<add name="ajax" verb="*" type="ajax.process,ajax" path="ajax.aspx"/>
</handlers>
</system.webServer>
</configuration>
注意IIS6还要设.aspx的映射不检查文件是否存在。
最后创建test.htm文件:
<html>
<head>
<title>调用DLL中的处理</title>
<script type="text/javascript">
function getTime() {
var xmlHttp = new XMLHttpRequest()
xmlHttp.open("GET", "/ajax.aspx", false)
xmlHttp.onreadystatechange = function () {
if (xmlHttp.readyState == 4) {
alert(xmlHttp.responseText)
}
}
xmlHttp.send(null)
}
</script>
</head>
<body>
<input type="button" value="getTime" onclick="getTime()" />
</body>
</html>
其实 js本来就是前台脚本,把js文件编译成dll供页面调用也可以实行
方法:
1.在解决方案中添加一个新项目(类库:JSControl)
2.在新项目中添加要用的JS脚本(JScript1.js)
脚本的内容:
function testAlert() {
alert("Hello!")
}
3. 改变JScript1.js的属性,Build Action为Embedded Resource(嵌入的资源)
4.在JSControl项目的AssemblyInfo.cs文件添加一行:(注意
JSControl.JScript1.js,JSControl是js所在项目的命名空间)
//定义组件内的内嵌资源的元数据属性
[assembly: System.Web.UI.WebResource("JSControl.JScript1.js", "application/x-javascript")]
注意:这边要增加个引用:System.Web.dll
5. 项目中增加一个注册客户端脚本的类:
6.在网站项目中引用JSControl项目,编译后生成
JSControl.dll
7.在要调用脚本的页面注册JSControl.dll
<%@ Register Assembly="JSControl" Namespace="JSControl"
TagPrefix="zhi" %>
8.引用脚本