2012-06-22 2 views
3

У меня есть ASP.Net Page, aspx с его формой по умолчанию.Опубликовать ASP.Net Данные формы на другую страницу

У меня есть кнопка Submit. После нажатия, он отправит данные самому себе. Другими словами, Button Click Event() из кода позади выполнит необходимые.

После этого, я бы хотел опубликовать одни и те же данные в другом ASp.Net Page, aspx из другого домена.

Итак, как я могу это сделать?

Я попытался создать Form в Button Click Event и javascript к Submit в Form так, что она будет оставлять сообщения. Но Form is not appearing hence there is already a Form` на странице.

Есть ли все-таки сделать это?

ответ

7

Используйте свойство Button 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 разные кнопки. Можно ли это сделать с помощью одной кнопки типа '' – william

+0

В первый раз, не заполняйте PostBackUrl, заполните его во время первой обратной передачи. Не уверены в сообщении формы, но регулярные обратные вызовы должны отлично работать с кодом JS, который у вас есть. –

+0

Я просто узнал, что 'PostBackUrl' работает только для страниц в пределах одного домена. Но мое требование - публиковать в другом домене. Может ли это быть сделано с' PostBackURL'? Tkz. – william

-3

В коде позади просто использовать

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

, это не ПОЧТОВАЯ страница, но ПОЛУЧИТ это –

2

Это один подход, который я не рекомендую, но это будет делать то, что вы хотите. Он использует JavaScript, чтобы изменить URL (например, default2.aspx) форма размещена на использование атрибута действия в форме, а затем перепечатывать форму

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" %> 

Предупреждение: Отключите генерацию MAC, установив enableViewStateMac = false на страницу или web.config. Это не рекомендуется, так как MAC помогает предотвратить несанкционированное использование данных в представлении. Но если искажение данных в представлении не является проблемой (&, это может быть не для некоторых приложений, где нет риска мошенничества или нарушений безопасности), вы можете отключить его. Read More

2

У меня была аналогичная проблема. У меня была кнопка asp:, которая просто выполняла обратную передачу. В части Page_Load IsPostBack я выполнил некоторую сложную проверку. Большинство людей просто отправляют форму на следующую страницу и проверяют ее там, а затем перенаправляют обратно, если она терпит неудачу. Но я думал, что это неряшливо. Таким образом, решение было обратной передачей, затем после проверки, отправить из CodeBehind. Я считаю, что это то, что вы ищете.

Я хотел бы обратить на это с «деталь», но это очень просто:

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

«Истинный» это флаг или нет, чтобы сохранить данные POST. Отлично работает для меня, дайте мне знать, как это работает для вас.

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

Смежные вопросы