日期:2014-05-17  浏览次数:20439 次

一般处理程序的自增,请教
母版HTML页,代码
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
</head>
<body>
<form action="" method="post">
<input type="text" name="txtname"  value="{num}"/>
<input type="submit"/>
</form>
</body>
</html>

一般处理程序对其引用,然后自增
    int a=1 ;
    public void ProcessRequest (HttpContext context) {
        context.Response.ContentType = "text/html";
        string path = context.Server.MapPath("Addself.htm");
        string model = System.IO.File.ReadAllText(path);
        if (!string.IsNullOrEmpty("txtxname"))
        {
            int.TryParse(context.Request.Form["txtname"],out a);
        }
        a++;

        model = model.Replace("{num}", a.ToString());
        context.Response.Write(model);
    

不明白的是 int a,无论我设a为多少,为什么走完
        if (!string.IsNullOrEmpty("txtxname"))
        {
            int.TryParse(context.Request.Form["txtname"],out a);
        }
之后,a就只会被赋值为0了?
HTML

------解决方案--------------------
 if (!string.IsNullOrEmpty("txtxname"))

==>
 if (!string.IsNullOrEmpty(context.Request.Form["txtname"]))
------解决方案--------------------
  if (!string.IsNullOrEmpty("txtxname"))
        {
            int.TryParse(context.Request.Form["txtname"],out a);
        }
你这条件永远为真,txtxname字符串当然不为空
你应该判断context.Request.Form["txtname"]这个值是否为空
------解决方案--------------------
引用:
Quote: 引用:

 if (!string.IsNullOrEmpty("txtxname"))

==>
 if (!string.IsNullOrEmpty(context.Request.Form["txtname"]))

结果确实改变了!为什么啊前辈,不大懂啊



"txtxname" 不等于context.Request.Form["txtname"]

"txtxname"这里时一个字符串变量,而且是有值的
------解决方案--------------------
context.Request.Form["txtname"]是非数字,转换出错后out参数为0了。
------解决方案--------------------