日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

在ASP.NET中把数据POST到其他页面

發(fā)布時間:2024/9/5 asp.net 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在ASP.NET中把数据POST到其他页面 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

先來建兩個測試頁面:test1.aspx和test2.aspx,內(nèi)容如下:
test1.aspx 頁面:

<%@?Page?language="c#"?Codebehind="Test1.aspx.cs"?AutoEventWireup="false"?Inherits="Ctrls.Test1"?%>
<!DOCTYPE?HTML?PUBLIC?"-//W3C//DTD?HTML?4.0?Transitional//EN"?>
<HTML>
????
<HEAD>
????????
<title>Test1</title>
????????
<meta?name="GENERATOR"?Content="Microsoft?Visual?Studio?.NET?7.1">
????????
<meta?name="CODE_LANGUAGE"?Content="C#">
????????
<meta?name=vs_defaultClientScript?content="JavaScript">
????????
<meta?name=vs_targetSchema?content="http://schemas.microsoft.com/intellisense/ie5">
????
</HEAD>
????
<body>

????????
<!--?下面在?from?標(biāo)簽中加了onsubmit事件處理,以便在提交數(shù)據(jù)時指向其他的頁面?-->
????????
<form?id="Form1"?method="post"?runat="server"?onsubmit="this.action='test2.aspx'">
????????請輸入您的姓名:
<asp:TextBox?id=txtName?runat="server"></asp:TextBox>
????????
<asp:Button?id=btnOK?runat="server"?Text="發(fā)送"?Width="56px"></asp:Button>
????????
</form>
????
</body>
</HTML> test1.aspx.cs 文件內(nèi)容:
using?System;
using?System.Collections;
using?System.ComponentModel;
using?System.Data;
using?System.Drawing;
using?System.Web;
using?System.Web.SessionState;
using?System.Web.UI;
using?System.Web.UI.WebControls;
using?System.Web.UI.HtmlControls;

namespace?Ctrls
{
????
/**////?<summary>
????
///?Test1?的摘要說明。
????
///?</summary>

????public?class?Test1?:?System.Web.UI.Page
????
{
????????
protected?System.Web.UI.WebControls.TextBox?txtName;
????????
protected?System.Web.UI.WebControls.Button?btnOK;
????
????????
private?void?Page_Load(object?sender,?System.EventArgs?e)
????????
{
????????????
//?在此處放置用戶代碼以初始化頁面
????????}


????????
Web?窗體設(shè)計器生成的代碼#region?Web?窗體設(shè)計器生成的代碼
????????
override?protected?void?OnInit(EventArgs?e)
????????
{
????????????
//
????????????
//?CODEGEN:?該調(diào)用是?ASP.NET?Web?窗體設(shè)計器所必需的。
????????????
//
????????????InitializeComponent();
????????????
base.OnInit(e);
????????}

????????
????????
/**////?<summary>
????????
///?設(shè)計器支持所需的方法?-?不要使用代碼編輯器修改
????????
///?此方法的內(nèi)容。
????????
///?</summary>

????????private?void?InitializeComponent()
????????
{????
????????????
this.Load?+=?new?System.EventHandler(this.Page_Load);

????????}

????????
#endregion

????}

}

test2.aspx 文件內(nèi)容:
<%@?Page?language="c#"?Codebehind="Test2.aspx.cs"?AutoEventWireup="false"?Inherits="Ctrls.Test2"?%>
<!DOCTYPE?HTML?PUBLIC?"-//W3C//DTD?HTML?4.0?Transitional//EN"?>
<HTML>
????
<HEAD>
????????
<title>Test2</title>
????????
<meta?name="GENERATOR"?Content="Microsoft?Visual?Studio?.NET?7.1">
????????
<meta?name="CODE_LANGUAGE"?Content="C#">
????????
<meta?name=vs_defaultClientScript?content="JavaScript">
????????
<meta?name=vs_targetSchema?content="http://schemas.microsoft.com/intellisense/ie5">
????
</HEAD>
????
<body>

????????
<form?id="Form1"?method="post"?runat="server"><FONT?face=宋體>您的姓名:<asp:Label?id=lbName?runat="server"></asp:Label><BR><BR>
????????????????你的地址:
<asp:TextBox?id=txtAddress?runat="server"></asp:TextBox><asp:Button?id=btnOK?runat="server"?Text="發(fā)送"?Width="64px"></asp:Button><BR><asp:Label?id=lbAddr?runat="server"></asp:Label></FONT>

????????
</form>
????
</body>
</HTML>
test2.aspx.cs 文件內(nèi)容:
using?System;
using?System.Collections;
using?System.Collections.Specialized;
using?System.ComponentModel;
using?System.Data;
using?System.Drawing;
using?System.Web;
using?System.Web.SessionState;
using?System.Web.UI;
using?System.Web.UI.WebControls;
using?System.Web.UI.HtmlControls;

namespace?Ctrls
{
????
/**////?<summary>
????
///?Test2?的摘要說明。
????
///?</summary>

????public?class?Test2?:?System.Web.UI.Page
????
{
????????
protected?System.Web.UI.WebControls.TextBox?txtAddress;
????????
protected?System.Web.UI.WebControls.Button?btnOK;
????????
protected?System.Web.UI.WebControls.Label?lbAddr;
????????
protected?System.Web.UI.WebControls.Label?lbName;
????
????????
private?void?Page_Load(object?sender,?System.EventArgs?e)
????????
{
????????????
if?(!?IsPostBack?)
????????????
{
????????????????lbName.Text?
=?Convert.ToString(Request.Form["txtName"]);
????????????}

????????}


????????
Web?窗體設(shè)計器生成的代碼#region?Web?窗體設(shè)計器生成的代碼
????????
override?protected?void?OnInit(EventArgs?e)
????????
{
????????????
//
????????????
//?CODEGEN:?該調(diào)用是?ASP.NET?Web?窗體設(shè)計器所必需的。
????????????
//
????????????InitializeComponent();
????????????
base.OnInit(e);
????????}

????????
????????
/**////?<summary>
????????
///?設(shè)計器支持所需的方法?-?不要使用代碼編輯器修改
????????
///?此方法的內(nèi)容。
????????
///?</summary>

????????private?void?InitializeComponent()
????????
{????
????????????
this.btnOK.Click?+=?new?System.EventHandler(this.btnOK_Click);
????????????
this.Load?+=?new?System.EventHandler(this.Page_Load);

????????}

????????
#endregion

????

????????
private?void?btnOK_Click(object?sender,?System.EventArgs?e)
????????
{
????????????lbAddr.Text?
=?txtAddress.Text;
????????}

????}

}

上面兩個頁面與平常的頁面一樣,只是在test1.aspx頁面中,設(shè)置了form標(biāo)簽的onsubmit事件,以使用在發(fā)送數(shù)據(jù)之前,把頁面指向其他的頁面:<form?id="Form1"?method="post"?runat="server"?onsubmit="this.action='test2.aspx'">.
  打開test1.aspx頁面,填寫數(shù)據(jù)之后按提交按鈕,頁面將數(shù)據(jù)提交到test2.aspx頁面,但是這時我們將得到一個"此頁的視圖狀態(tài)無效,可能已損壞。"的運行時錯誤.
為了解決這個問題,我們可以重寫Page類的DeterminePostBackMode方法.修改test2.aspx.cs文件,加入DeterminePostBackMode方法,如下:
/**////?<summary>
????????
///?此方法用來獲取表單的數(shù)據(jù),如果此方法返回null值的話,?IsPostBack?屬性將會設(shè)置為?false
????????
///?當(dāng)?IsPostBack?屬性為?false?時,ASP.NET就不會加載視圖狀態(tài)的邏輯,那也就不會出
????????
///?現(xiàn)"此頁的視圖狀態(tài)無效,可能已損壞。"的運行時錯誤了
????????
///?</summary>

????????protected?override?NameValueCollection?DeterminePostBackMode()
????????
{
????????????
//?這里主要檢查是否是從其他頁面請求過來的,
????????????
//?如果是從其他頁面請過來就返回空,不加載視圖狀態(tài)
????????????if?(Request.UrlReferrer?==?null)
????????????
{
????????????????
return?null;
????????????}


????????????
string?url?=?Request.UrlReferrer.ToString();
????????????url?
=?url.Substring(url.LastIndexOf("/")?+?1).ToLower();
????????????
if?(url?!=?"test2.aspx")
????????????
{
????????????????
return?null;
????????????}


????????????
return?base.DeterminePostBackMode?();
????????}

在重新打開test1.aspx,然后把數(shù)據(jù)提交到test2.aspx頁面,這樣就不會出現(xiàn)錯誤了,頁且在test2.aspx頁面還可以做回傳處理呢.

文章出處:我的網(wǎng)站

轉(zhuǎn)載于:https://www.cnblogs.com/kuku/archive/2004/11/08/61408.html

總結(jié)

以上是生活随笔為你收集整理的在ASP.NET中把数据POST到其他页面的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。