在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'" />