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自动帮我们做的。。
相关阅读 更多 +