2012-06-22 55 views
3

我有一個ASP.Net Page, aspx以其默認形式。將ASP.Net表單數據發送到另一頁

我有一個Submit它的按鈕。點擊後,它會將數據發佈到自身。換句話說,代碼後面的Button Click Event()將執行必要的操作。

之後,我想從另一個域發佈相同的數據到另一個ASp.Net Page, aspx

那麼,我該怎麼做呢?

我試圖創造一個Button Click EventForm一個javascriptSubmitForm使之職。但頁面上的Form is not appearing hence there is already a Form`。

有沒有辦法做到這一點?

回答

7

使用按鈕的PostBackUrl屬性。 http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.button.postbackurl.aspx

<%@ page language="C#" %> 

<!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 id="head1" runat="server"> 
    <title>Button.PostBackUrl Example</title> 
</head> 
<body>  
    <form id="form1" runat="server"> 

    <h3>Button.PostBackUrl Example</h3> 

    Enter a value to post: 
    <asp:textbox id="TextBox1" 
     runat="Server"> 
    </asp:textbox> 

    <br /><br /> 

    <asp:button id="Button1" 
     text="Post back to this page" 
     runat="Server"> 
    </asp:button> 

    <br /><br /> 

    <asp:button id="Button2" 
     text="Post value to another page" 
     postbackurl="Button.PostBackUrlPage2cs.aspx" 
     runat="Server"> 
    </asp:button> 

    </form> 
</body> 
</html> 
+1

我看到你正在使用2個不同的按鈕。 OnClick =「javascript:return ValidateForm()」CssClass =「btn」 onclick =「btnSubmit_Click」可以使用單個按鈕完成,如' – william

+0

第一次,不要填寫PostBackUrl,在第一次回發期間填寫它。不確定在表單發佈,但定期回發應該適用於你有的JS代碼。 –

+0

我只是發現'PostBackUrl'只適用於同一個網域內的網頁,但是我的要求是發佈到另一個網域,是否仍可以使用'PostBackURL'?Tkz。 – william

-3

在後面的代碼只需使用

Response.Redirect("YourOtherPage.aspx?param1=xxx") 
+5

提供的答案,這不會POST頁面,但會獲得它 –

2

這是一個方法,我真的不建議,但它會做你想要什麼。它使用JavaScript來更改URL(如以default2.aspx)的形式張貼到使用表單的action屬性,然後重新發布形式

protected void btnClick(object sender, EventArgs e) 
    { 
     string script = "<script> document.forms[0].action='default2.aspx'; document.forms[0].submit(); </script>"; 
     ClientScript.RegisterClientScriptBlock(this.GetType(), "postform", script); 
    } 

第二個頁面都應該有EnableViewStateMac="false"

<%@ Page Language="C#" EnableViewStateMac="false" AutoEventWireup="true" 
      CodeBehind="default2.aspx.cs" Inherits="CodeGen.default2" %> 

小心:通過在頁面或web.config中設置enableViewStateMac = false來關閉MAC生成。由於MAC有助於防止人們篡改視圖狀態數據,因此不建議這樣做。但如果篡改視圖狀態數據不是問題(&它可能不適用於沒有欺詐或安全漏洞風險的某些應用程序),您可以關閉它。 Read More

2

我有類似的問題。我有一個簡單地執行回發的asp:按鈕。在Page_Load IsPostBack部分中,我做了一些複雜的驗證。大多數人只是將表單提交到下一頁並在那裏進行驗證,如果失敗則重新導向回。但我認爲是sl。。所以解決方案是回發,然後在驗證後,從CodeBehind內提交。我相信這就是你要找的。

我想用「細節」畫了這一點,但它是非常簡單的:

Server.Transfer("~/folder/page.aspx", True) 

「真實」是與否保留POST數據的標誌。對我來說工作得很好,讓我知道它是如何爲你工作的。

http://www.codeproject.com/Articles/37539/Redirect-and-POST-in-ASP-NET

相關問題