asp.net基础学习(1)
时间:2011-04-12 来源:Bruce.陈
基于ashx方式的ASP.Net开发。主要理解WebForm开发中的 ispostback 和 《请求-处理-响应》的流程。
做了一个ashx方式数字自增页面。
Handler.ashx页面
<%@ WebHandler Language="C#" Class="Handler" %>
using System;
using System.Web;
public class Handler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/html";//指明页面的显示方式,这里选html
string ispostback = context.Request["ispostback"];//客户端页面提交上来的表单的值,ispostback用来判断是直接访问还是提交访问
string number = context.Request["number"];
string msg;
if (ispostback == "ture")//判断是直接访问还是提交访问
{
int i = Convert.ToInt32(number);
i++;
number = i.ToString();
msg = "用户为提交进入";
}
else
{
number = "0";
msg = "用户为直接进入";
}
string fullpath = context.Server.MapPath("HTMLPage.htm");//读取HTMLPage.htm的全路径
string content = System.IO.File.ReadAllText(fullpath);//读取模版页HTMLPage.htm的内容
content = content.Replace("@value", number);
content = content.Replace("@msg", msg);//替换页面内容
context.Response.Write(content);//输出页面
}
public bool IsReusable
{
get
{
return false;
}
}
}
HTMLPage.htm页面
<!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>
<title>无标题页</title>
</head>
<body>
<form action ="Handler.ashx" method ="post">
<input type ="hidden" value ="ture" name="ispostback" />
<input type ="text" name="number" value ="@value" />
<input type ="submit" value="自增" />
@msg;
</form>
</body>
</html>
以上这个理解,我清楚了《请求-处理-响应》这个web处理模式。服务端不会去读客户端的页面的内容,只会对客户端的请求进行处理,并向客户端作出响应。
这里用<input type ="hidden" value ="ture" name="ispostback" />这个隐藏字段,让服务器明白。客户端是提交进入还是直接进入,在WebForm中函数IsPostback()就是实现这个功能。
WebForm中也是《请求-处理-响应》处理模式,只不过WebForm帮我们做好了一些封装。那些隐藏字段的值,一般被保存在viewstate里面。这个是WebForm自动帮我们做的。。
相关阅读 更多 +
排行榜 更多 +










