在ASP.NET 2.0中實現跨頁面提交

來源:互聯網
上載者:User

在ASP.NET 1.X 版本中,頁面都是提交到自己本身,並不能方便的指定需要 提交的目的頁面。例如FirstPage.aspx中的button只能提交到FirstPage.aspx, 而不能提交到SecondPage.aspx。很多時候,ASP.NET 1.X這樣工作方式使我們的 開發方式受到不少限制。熟悉ASP/JSP/PHP的朋友大概很不習慣,因為以前經常 使用的提交方式突然無法使用,雖然也有解決這個問題的方法(欲詳細瞭解的讀 者可去微軟網站收看webcast),可是過程太煩瑣,不甚方便。令我們高興的是 ,ASP.NET 2.0中有了跨頁面提交的簡單方法。

簡單的例子

首先看看下面的代碼,FirstPage.aspx中的Button通過指定PostBackUrl屬性 可以提交到指定的頁面:

FirstPage.aspx

<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1- transitional.dtd">
<script runat="server">
public String UserName {
 get {
return this.txtName.Text;
 }
}
protected void Button1_Click(object sender, EventArgs e)
{
 Label1.Text = "Postback from self. Your Name is: " + txtName.Text;
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
 <meta content="text/JScript" http-equiv="content- script-type" />
 <title>First Page</title>
</head>
<body>
 <form id="form1" runat="server">
 <div>
<h3>The Frist Page</h3>
Your Name:
<asp:TextBox ID="txtName" runat="server" />
<asp:Label ID="Label1" runat="server" EnableViewState="False" /><br />
<br />
<asp:Button ID="Button1" runat="server" Text="Postback to Same Page" OnClick="Button1_Click" /><br />
<br />
<asp:Button ID="Button2" runat="server" Text="Postback to Second Page" PostBackUrl="~/SecondPage.aspx" /><br />
 </div>
</form>
</body>
</html>

SecondPage.aspx

<%@ Page Language="C#" %>
<%@ PreviousPageType VirtualPath="~/FirstPage.aspx" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1- transitional.dtd">
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
 this.Label1.Text = "Your Name is : " + PreviousPage.UserName;
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Second Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<h1>This is the Second Page</h1>
<p><asp:Label ID="Label1" runat="server"> </asp:Label>&nbsp;</p>
</div>
</form>
</body>
</html>

開啟FirstPage.aspx,輸入內容並按下"Postback to Second Page"按鈕提交,頁面就會提交到SecondPage.aspx,輸入的內容也會顯示 在SecondPage.aspx上。注意FirstPage.aspx中Button2新增的PostBackUrl屬性 ,還有SecondPage.aspx中的@PreviousPageType指令。這些新增的內容,正是 ASP.NET 2.0 中的跨頁提交的方案的組成部分。

大家可能會發現,在使用ASP.NET 2.0 的跨頁面提交功能的時候,目標頁面 都是在源頁面的視窗中開啟的。但有時候我們需要在新的視窗中開啟目標頁面, 通過修改源頁面中<form>的屬性可以實現這一點。如下面的代碼所示:

<form id="MainForm" Target="_blank" runat="server">

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.