ASP.Net中表單POST到其他頁面的方法

Web開發者發表於2012-06-26

在ASP中,我們通常把表單提交到另外一個頁面(接受資料頁面)。但是在ASP.NET中,服務端表單通常都是提交到本頁面的,如果我設定

form1.action="test.aspx";

那麼就會導致檢視驗證錯誤的錯誤,因為Asp.net安全機制引起的。我們也可以關閉這個驗證,在接受頁面中(test.aspx)頭部加上

 <%@ Page EnableViewStateMac="false" %>

但這樣做不是很安全,其實asp.net 2.0 還提供了一種方式提交到其他頁面,伺服器按鈕控制元件提供了一個屬性:PostBackUrl,這樣寫

button1.PostBackUrl="test.aspx";

這樣就不會引起驗證錯誤的問題了,又很安全。

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

這裡順便說一下動態修改form表單屬性的方法一些方法,與上面無關係:例如修改target屬性

普通頁面:

((System.Web.UI.HtmlControls.HtmlForm)this.FindControl("form1")).Target = "_blank";

或者

form1.Attributes["target"] = "_blank";

含母版頁master:

((System.Web.UI.HtmlControls.HtmlForm)this.Master.FindControl("form1")).Target = "_blank";

前臺修改:

<asp:Button ID="btnSubmit" runat="server" Text="Button" onclick="btnSubmit_Click" OnClientClick="this.form.target='_blank'" />

相關文章