您的位置:首页 > 编程语言 > ASP

ASP.Net学习笔记005--ASP.Net的IsPostBack揭秘

2016-01-11 00:22 627 查看
以前写的课程都没有附上源码,很抱歉!

课程中的源码可以加qq索要:1606841559

技术交流qq1群:251572072

技术交流qq2群:170933152

也可以自己下载:

ASP.Net学习笔记005ASP.Net的IsPostBack揭秘.zip
http://credream.7958.com/down_20144364.html
1.IsPostBack就是上课中说的:

如果表单没有提交,那么IsPostBack就是false,如果表单提交了IsPostBack就是true

2.上课中,通过判断提交的内容是否是空或者空字符串来判断的,这样是有些不合理的,如果后台

需要接收一个空,或者空字符串的时候,这个时候,用这个判断是有问题的

3.可以加一个字段解决:
http://localhost:61248/WebSite1/Hello2.ashx?IsPostBack=true&UserName=UserName
4.并且,如果想反回提交的值,可以通过替换自定义字段的形式,实现

接着上课工程:

/WebSite1

Hello2.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="Hello2.ashx">

<input type="hidden" name="IsPostBack" value="true" />

姓名:<input type="text" value="@value" name="UserName"/>

<input type="submit" value="提交" />

@msg

<!--

服务器只认name属性,而且name属性如果重复,会只提交第一个

id是给dom用的

-->

</form>

</body>

</html>

---------------------------------------------------------------------------

Hello2.ashx

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

using System;

using System.Web;

public class Hello2 : IHttpHandler {

public void ProcessRequest (HttpContext context) {

context.Response.ContentType = "text/html";

//---------上课内容----------

// string username=context .Request ["UserName"];

// if (string.IsNullOrEmpty (username )){

// context.Response.Write("直接进入");

// }

//else

//{

// context.Response.Write("提交进入");

// }

// context.Response.Write("Hello World");

//---------上课内容----------

string msg = "";

string usernmae=context .Request["UserName"];

//**********************************************

string isPostBack =context.Request["IsPostBack"];

if (isPostBack =="true"){

context.Response.Write("提交进入");

msg =usernmae+"--hello credream";

}else{

context.Response.Write("直接进入");

usernmae = "";

msg = "";

}

//当直接访问的时候http://localhost:61248/WebSite1/Hello2.ashx,因为后面没有参数,所以这个时候,

//显示直接进入,当,填写入内容的时候,因为后面有参数了,所以是提交进入

//http://localhost:61248/WebSite1/Hello2.ashx?IsPostBack=true&UserName=UserName

string fullPath = context.Server.MapPath("Hello2.htm");//取得文件全路径

string content = System.IO.File.ReadAllText(fullPath);//取得文件全内容

content.Replace("@value",usernmae);

content.Replace("@msg", msg);

//直接访问这个文件也会被调用

context.Response.Write(content);

}

public bool IsReusable {

get {

return false;

}

}

}

--------------------------------------------------------------------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: