Estoy tratando de enviar datos de un formulario de una página a otra utilizando C# ASP.Net. Tengo dos páginas por defecto.aspx y default2.aspx.Este es el código que tengo en default.aspx:

<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<br />
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<br />
<asp:Button ID="Button1" runat="server" Text="Go" 
    PostBackUrl="~/Default2.aspx" />
<br />

De lo que yo sé hasta ahora, el PostBackUrl se utiliza para establecer la página en la que desea que los datos se envíen ¿es correcto esto?

También ¿cómo puedo recuperar los datos que se envían a Default2.aspx?

OriginalEl autor user1525474 | 2012-10-07

4 Comentarios

  1. 22

    Usted tiene un par de opciones, tenga en cuenta

    1. El estado de la sesión
    2. De la cadena de consulta

    El estado de la sesión

    Si usted va a enviar datos entre páginas, usted podría considerar el uso de El Estado De Sesión.

    ASP.NET el estado de sesión le permite almacenar y recuperar valores de un
    usuario mientras navega ASP.NET páginas en una aplicación Web. HTTP es
    un protocolo sin estado. Esto significa que un servidor Web que trata a cada uno de HTTP
    solicitud para una página independiente solicitud. El servidor no mantiene
    el conocimiento de los valores de la variable que se utiliza durante las solicitudes anteriores.
    ASP.NETO el estado de la sesión identifica las solicitudes desde el mismo navegador durante
    una ventana de tiempo limitado como una sesión, y proporciona una forma de conservar
    valores de la variable duración de la sesión. Por defecto, ASP.NET
    el estado de la sesión está habilitado para todos ASP.NET aplicaciones.

    Lo mejor de todo, es fácil!

    Poner los datos en (por ejemplo en defecto1.aspx)

    Session["FirstName"] = FirstNameTextBox.Text;
    Session["LastName"] = LastNameTextBox.Text;

    Salir (por ejemplo en default2.aspx)

    string firstname = Session["FirstName"] //value of FirstNameTextBox.Text;
    string lastname = Session["LastName"] //value of LastNameTextBox.Text; 

    De la cadena de consulta

    Si usted es el envío de pequeñas cantidades de datos (por ejemplo, id=4), puede ser más práctico el uso de variables de cadena de consulta.

    Usted debe explorar el uso de las variables de cadena de consulta, por ejemplo,

    http://www.domain.com?param1=data1&param2=data2

    Usted puede, a continuación, obtener los datos como

    string param1 = Request.QueryString["param1"]; //value will be data1
    string param2 = Request.QueryString["param2"]; //value will be data2

    Usted puede usar algo como ¿Cómo se prueba su Solicitud.QueryString[] variables? de obtener los datos.

    Si usted no está familiarizado con querystring variables de salida su artículo de la wikipedia

    OriginalEl autor inspite

  2. 7

    Las variables de sesión puede ser útil en este contexto.

    Por ejemplo suponga que los cuadros de texto que contienen credenciales de inicio de sesión, a continuación, guárdelos en las sesiones de modo que usted puede utilizar en cualquier otra página. Como este:

    En Button_Click-

    Session["name"]=TextBox1.Text;
    Session["pwd"]= TextBox2.Text;

    Lugar de PostBackUrl="~/Default2.aspx" se puede escribir la siguiente-

    //in button click
    Server.Transfer("~/Default2.aspx");

    En Default2.aspx la carga de la página:

    string a= Session["name"].ToString();
    string b= Session["pwd"].ToString();

    OriginalEl autor Cdeez

  3. 3

    Intente esto en el Page_Load de Default2.aspx.

     if (PreviousPage != null)
            {
                if (((TextBox)PreviousPage.FindControl("TextBox1")) != null)
                {
                    string txtBox1 = ((TextBox)PreviousPage.FindControl("TextBox1")).Text;
                    Response.Write(txtBox1);
                }
            }

    Y sí, estás en lo correcto, los datos de la página 1 será enviado a la página 2 si utiliza la PostBackUrl atributo.

    Enlace de MSDN

    Supongo que tendría que utilizar el Servidor.La transferencia de
    ¿por qué necesito? Acabo de probar esto a mí y funciona bien.
    Cuando se utiliza el método de Transferencia o el uso de la cruz-la página de contabilización para la transferencia de procesamiento de un ASP.NET página a otra, el origen de la página contiene la solicitud de información que puede ser requerida para la página de destino. Puede utilizar la propiedad PreviousPage para acceder a esa información. Tomada de este enlace msdn.microsoft.com/en-us/library/…
    He utilizado tu código y me parecen un NullPointerException
    has leído mi respuesta? PreviousPage está ahí..

    OriginalEl autor Thousand

  4. 2

    Mientras que todas las respuestas aquí trabajará algunos no son las más eficientes. ¿Por qué un simple/estándar http POST tiene que invocar (caro) en el lado del servidor Sessions?

    El código no está haciendo nada especial, simplemente es la Publicación de un formulario a otra página. Todo lo que usted necesita hacer para obtener los datos enviados es ir a través de la Request.Form colección.

    Antes de la disponibilidad para establecer el PostBackUrl (si la memoria no sirve para la versión 1 de asp.net), Server.Transfer y obtener referencias a la página anterior era la forma de la cruz-la página de la Publicación fue realizada y documentada. Sin embargo, con PostBackUrl, las cosas vuelven a lo básico, la forma en que debe ser – un estándar http POST de un recurso a otro.

    Aquí un similares PARA el hilo que puede ser útil.

    Exactamente así, mediante el uso PostBackUrl usted necesita para volver a los fundamentos
    Sí, ASP.net no introducir nada «especial» de la web (pero hace maravillas para los desarrolladores). En su núcleo, que funciona de acuerdo a los principios básicos de http. Un Postback no es nada más que un http POST a la misma página. El uso de PostBackUrl sólo cambia el destino de la http POST a algunos otros recursos en la web (que puede analizar/proceso de datos Publicados), ASP.Net o no, en el mismo sitio o no.
    Eso es lo que yo estaba tratando de decirle en su anterior pregunta que se estaba discutiendo el mismo tema, esperemos que iba a leer tu aclaración.

    OriginalEl autor EdSF

Dejar respuesta

Please enter your comment!
Please enter your name here