使用JavaScript 动态生成标记Script可以产生http请求,进而通过查询字符串来向服务器提交数据,实现用较小的局部刷新来与服务器通信的目的.(源码下载地址:http://codechina.net/source/2001372)html 代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="script.aspx.cs" Inherits="script" %>
<!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>
<script type="text/javascript">
//发出请求函数
function sendRequest()
{
document.getElementById("ResultDiv").innerText="";
var newScript=document.createElement("script");
newScript.src="scripthandler.ashx?msg="+escape(form1.Text1.value);
document.body.appendChild(newScript);
}
//调用成功后的回调函数
function requestComplete(arg)
{
document.all.ResultDiv.innerHTML=arg;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<input id="Button1" type="button" value="button" onclick="sendRequest();"/>
<input id="Text1" type="text" />
<div id="ResultDiv"></div>
</div>
</form>
</body>
</html>
服务器端处理请求代码(scripthandler.ashx):
<%@ WebHandler Language="C#" Class="scriptHandler" %>
using System;
using System.Web;
public class scriptHandler : IHttpHandler
{
public void ProcessRequest (HttpContext context)
{
context.Response.ContentType = "text/plain";
//接收参数并处理后(这里省略了对参数的处理),输出脚本调用requestComplete方法
context.Response.Write("requestComplete ('<b>Hello,"+context.Request.QueryString[0]+"!</b>');");
}
public bool IsReusable
{
get
{
return false;
}
}
}