A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马杨锦喜 中级黑马   /  2012-10-13 00:21  /  1437 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


谢谢各位的指教,此问题已得到解决了,引用我认为最佳 的答案:

("<input type='hidden' name='hiddenIsPostBack' value='1' />");这个隐藏域是为了实现回调作用的,也就是说通过获取这个隐藏域的值string hiddenIsPostBack=context.Request.Form["hiddenIsPostBack"];然后在判断其是否为空if (!string.IsNullOrEmpty("hiddenIsPostBack"))来判断对_06Caculate.ashx这个页面是第一次访问加载,还是因为提交表单回发而加载。(因为这个计算器的html代码输出和表单提交后的处理都是通过_06Caculate.ashx这个页面来完成。作者的本意是要实现,第一次用户访问这个页面是显示计算器的表单界面,当用户点击提交按钮后显示计算的结果)上述程序的错误之处在于:没有先通过string hiddenIsPostBack=context.Request.Form["hiddenIsPostBack"];获取。所以执行结果始终不会改变。


原问题如下:

请问一下这句话到底是干嘛的呢?  sb.Append("<input type='hidden' name='hiddenIsPostBack' value='1' />");

求解啊,谢谢

<%@ WebHandler Language="C#" Class="_06Caculate" %>

using System;
using System.Web;
using System.Text;

public class _06Caculate : IHttpHandler {
   
    public void ProcessRequest (HttpContext context) {


        string Num1 = context.Request.Form["txtNum1"];
        string Num2 = context.Request.Form["txtNum2"];
        int x = 0;
        int y = 0;
        int z = 0;

        if (!string.IsNullOrEmpty("hiddenIsPostBack"))
        {
            if (!string.IsNullOrEmpty(Num1) && !string.IsNullOrEmpty(Num2))
            {
                if (int.TryParse(Num1, out x) && int.TryParse(Num2, out y))
                {
                    z = x + y;
                }
            }
        }
        else
        {
            
        }
            
        StringBuilder sb = new StringBuilder();
        sb.Append("<form action='' method='post'>");
        sb.Append("<html><head><title>计算器</title></head><body>");

        sb.Append("<input type='text' name='txtNum1' value='" + x.ToString() + "'/>");
        sb.Append("<input type='text' name='txtNum2' value='" + y.ToString() + "'/> <br> =");

        sb.Append("<input type='text' name='txtSum' value='" + z.ToString() + "'/>  ");
        
        sb.Append("<input type='submit' name='submit' value='计算'/>");

        sb.Append("<input type='hidden' name='hiddenIsPostBack' value='1' />");
        
        sb.Append("<a href='04Register.ashx?a=james'>注册</a>");
        
        sb.Append("</form>");
        sb.Append("</body></html>");
        context.Response.Write(sb.ToString());
    }

    public bool IsReusable {
        get {
            return false;
        }
    }

}

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

1 个回复

倒序浏览
大半夜老眼昏花,看了第一句還以為你在問html的,編輯掉!!!

呃,恭喜你,自己解決了,我就打打醬油就好了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马