有关于实时刷新的简单例子,数据为了方便写死了,写法其实是一样一样的~~
.ashx文件
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.Script.Serialization;
namespace WebApplication1
{
/// <summary>
/// Handler1 的摘要说明
/// </summary>
public class Handler1 :IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
string name=context.Request["Name"];
string age=context.Request["Age"];
Test tt = GetTest(name, age);
JavaScriptSerializer jss = new JavaScriptSerializer();
string json = jss.Serialize(tt);
context.Response.Write(json);
}
public bool IsReusable
{
get
{
return false;
}
}
public Test GetTest(string name, string age)
{
Test t = new Test();
t.Name = "姓名:"+name;
t.Age = "年龄:"+age;
return t;
}
}
public class Test
{
public string Name { get; set; }
public string Age { get; set; }
}
}
注意点:using System.Web.Script.Serialization; 这边需要添加的引用是system.web.extension这个dll
.aspx前台页面
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" %>
<!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 src="Scripts/jquery-1.7.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
setInterval("Refresh();", 1000);
function Refresh()
{
$.post("Handler1.ashx", { "Name": "amy", "Age": "20" }, function (data, status) {//这边amy,20数据写死了
if (status == "success") {
var v = $.parseJSON(data);
$("#Label1").text(v.Name+v.Age);
}
});
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="Label1" runat="server"></asp:Label>
</div>
</form>
</body>
</html>
最近做项目的时候,学到的这个,我就依葫芦画瓢写了个简单的例子。但是对于什么时候合理地使用ashx还不是很了解,还需要不断地学习~~