黑马程序员_学习日记69_720ASP.NET(编译、重定向、自增)

一、编译过程
 

二、重定向的原理302
1、 客户端发送请求到当前页面;
2、 当前页面封装报文,返回状态码302和新url地址;
3、 浏览器解析当前的报文,看到是302,浏览器发起新请求到新的url地址
this.Response.Redirect(“FrmPostDemo.htm”);


三、自增:(理解Http协议是无状态的)
(一)需求:
 
每点一次提交,text中的数值加1。
(二)实现:
html+一般处理程序:SelfIncrease.htm、IncreaseProcess.ashx。其中SelfIncrease.htm作为模板,IncreaseProcess.ashx实现自增。
1、SelfIncrease.htm
<body>
    <form action="IncreaseProcess.ashx" method="post" >
        <input type="hidden" name="_viewState" value="@1" />
        自增数据:<input type="text" name="num" value="@value" />
        <input type="submit" value="提交表单" />
    </form>
</body>

2、IncreaseProcess.ashx
public class IncreaseProcess : IHttpHandler {

    public int num = 0;
    
    public void ProcessRequest (HttpContext context) {
        context.Response.ContentType = "text/html";

        //将html文件模板读取出来
        string fileData = System.IO.File.ReadAllText(context.Request.MapPath("SelfIncrease.htm"));
        
        //第一次请求
        //context.Request["_viewState"]是传递给ashx页面的参数,第一次为null
        if (context.Request["_viewState"] == null)
        {
            //这里的@value是从模板中读取的,不是传递过来的参数,所以不为null
            var dataFirst = fileData.Replace("@value", "0");

            context.Response.Write(dataFirst);
            return;
        }
        
        //非第一次
        //把前台提交过来的值转成int
        var text = context.Request["num"];
        int.TryParse(text, out num);
        num++;

        string dataPostBack = fileData.Replace("@value", num.ToString());

        context.Response.Write(dataPostBack);
    }
 
    public bool IsReusable {
        get {
            return false;
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值