Foros del Web » Programación para mayores de 30 ;) » .NET »

Forms. POST Y GET... siguen exisitiendo?

Estas en el tema de Forms. POST Y GET... siguen exisitiendo? en el foro de .NET en Foros del Web. Buenas.. qué tal? Miren sinceramente estoy de a poco pasando a .NET, ya que desde hace algunos años estoy con ASP. El tema es el ...
  #1 (permalink)  
Antiguo 02/06/2004, 14:47
Avatar de Cbas  
Fecha de Ingreso: enero-2002
Ubicación: capital federal
Mensajes: 437
Antigüedad: 22 años, 3 meses
Puntos: 2
Forms. POST Y GET... siguen exisitiendo?

Buenas.. qué tal?

Miren sinceramente estoy de a poco pasando a .NET, ya que desde hace algunos años estoy con ASP.

El tema es el siguiente... en ASP tengo el tag de FORM, y tiene un atributo que puede ser post o get, luego en otro asp puedo capturar ese valor como
Request.QueryString("valor") o Request.Form("Valor"), también poniendo solamente Request("valor").

La pregunta es la siguiente... cómo hago diferentes formularios en un mismo ASPX???
O sea.. porque tal vez quiero poner diferentes Forms con diferentes Actions.

Espero haber sido claro.

SALUDOS y GRACIAS!
__________________
La Perfección es enemigo de lo bueno.
  #2 (permalink)  
Antiguo 02/06/2004, 15:30
Avatar de SunDarK  
Fecha de Ingreso: diciembre-2003
Ubicación: Jerez de la Frontera
Mensajes: 1.193
Antigüedad: 20 años, 4 meses
Puntos: 8
Ummm yo no he programado en ASP,pero a ver si lo he entendido,te refieres a almacenar una variable y que se pueda utilizar en otra página aspx en la misma sesión? Si es asi puedes usar las variables de Sesión
http://www.forosdelweb.com/f29/no-funciona-variable-session-206069/
Saludos
  #3 (permalink)  
Antiguo 02/06/2004, 15:59
Avatar de Cbas  
Fecha de Ingreso: enero-2002
Ubicación: capital federal
Mensajes: 437
Antigüedad: 22 años, 3 meses
Puntos: 2
Si... la verdad que ya había visto ese Post... te agradezco mucho... el tema es que no entiendo por qué tengo que utilizar variables de session..
o sea.. sé lo del redirect y lo entiendo.. pero no hay otra forma?

SALUDOS!
__________________
La Perfección es enemigo de lo bueno.
  #4 (permalink)  
Antiguo 02/06/2004, 16:18
Avatar de SunDarK  
Fecha de Ingreso: diciembre-2003
Ubicación: Jerez de la Frontera
Mensajes: 1.193
Antigüedad: 20 años, 4 meses
Puntos: 8
Esta la forma de pasarlas en la URL con el ? pero aparte de que queda poco estatico puede suponer graves problemas de seguridad para tu aplicacion.
Yo siempre uso las variables de sesión,desconozco otro metodo :) un saludo y suerte
  #5 (permalink)  
Antiguo 02/06/2004, 17:12
Avatar de Cbas  
Fecha de Ingreso: enero-2002
Ubicación: capital federal
Mensajes: 437
Antigüedad: 22 años, 3 meses
Puntos: 2
ok...entendí... bueno, te agradezco muchisimo!...
Y entonces deberé hacerlo con variables de sesión.

Ya que te tengo aquí... aprovehco a preguntarte... con las variables esas de cache... no es bueno?

SALUDOS!
__________________
La Perfección es enemigo de lo bueno.
  #6 (permalink)  
Antiguo 02/06/2004, 17:52
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Les voy a pasar un ejemplo para que no necesariamente usen una variable de session..(aunque usé algo de javascript )

Lo voy a hacer con 2 páginas

pagina1.aspx
supongamos que tengo un form con un boton y un textbox y lo quiero pasar a otra página por post.

<form id="Form2" method="post" runat="server">
<asp:button id="Button1" runat="server" Text="Button"></asp:button>
<asp:textbox id="TextBox1" runat="server"></asp:textbox>
</form>

Pero aqui viene el truco en el script..

Cita:
<script language="javascript">
function noPostBack(sNewFormAction)
{
document.forms[0].action = sNewFormAction;
document.forms[0].__VIEWSTATE.name = 'NOVIEWSTATE';
}
</script>
De tal forma que la pagina en modo html quedaría:

Cita:
<HTML>
<HEAD>
<title>pagina1</title>
<script language="javascript">
function noPostBack(sNewFormAction)
{
document.forms[0].action = sNewFormAction;
document.forms[0].__VIEWSTATE.name = 'NOVIEWSTATE';
}
</script>
</HEAD>
<body>
<form id="Form2" method="post" runat="server">
<asp:button id="Button1" runat="server" Text="Button"></asp:button>
<asp:textbox id="TextBox1" runat="server"></asp:textbox>
</form>
</body>
</html>
y en el codebehind agregar la siguiente línea:

Cita:
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
...
..
Button1.Attributes.Add("onclick", "noPostBack('pagina2.aspx');")
..
..
End Sub
Con ello al hacer click (que propiamente en el cliente es un submit) los llevará a la página destino para recoger el valor.

pagina2.aspx

Cita:
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Handles MyBase.Load

Response.Write(Request.Form("Textbox1").ToString)

End Sub
Tambien una vez leí que también se puede hacer el post con el System.Net.WebRequest pero no lo recuerdo bien..en cuanto tenga mas info se las paso ok..??

Espero les sirva éste ejemplo...
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #7 (permalink)  
Antiguo 02/06/2004, 18:01
Avatar de Cbas  
Fecha de Ingreso: enero-2002
Ubicación: capital federal
Mensajes: 437
Antigüedad: 22 años, 3 meses
Puntos: 2
Ok... entendí... lo que aún no me queda claro... perdón por mi torpeza o ser testarudo de querer hacer las cosas como en ASP...

Mi pregunta tal vez más concreta.. sería... cual les parece la mejor forma de pasar variables entre páginas?
la del cache("variable"), es no es buena?
O cual les parece la mejor?
__________________
La Perfección es enemigo de lo bueno.
  #8 (permalink)  
Antiguo 08/06/2004, 09:24
Avatar de Cbas  
Fecha de Ingreso: enero-2002
Ubicación: capital federal
Mensajes: 437
Antigüedad: 22 años, 3 meses
Puntos: 2
Esto nunca lo usé
__________________
La Perfección es enemigo de lo bueno.
  #9 (permalink)  
Antiguo 08/06/2004, 09:38
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Cita:
Esto nunca lo usé
A que te refieres con eso friend..??

Por cierto, guardar variables en el caché no creo que sea la mejor forma, lo puedes hacer con variables de session y cuando la desocupes simplemente la eliminas para que no esté en memoria.

Salu2
  #10 (permalink)  
Antiguo 08/06/2004, 18:37
 
Fecha de Ingreso: mayo-2004
Ubicación: Guadalajara, Jalisco, México
Mensajes: 724
Antigüedad: 19 años, 11 meses
Puntos: 6
UNa forma interesante de pasar valores a otra pagina:

Como tu sabes que response.redirect("pagina2.aspx",true) cambia el flujo de ejecucion a otra pagina... pero solo la redirecciona, no le manda valores, right ?

Por ejemplo en Pagina.aspx tienes esto:

<form id="Form2" method="post" runat="server">
<asp:button id="Button1" runat="server" Text="Button"></asp:button>
<asp:textbox id="TextBox1" runat="server"></asp:textbox>
</form>

Bueno... puedes usar:

Response.Transfer("Pagina2.aspx") (dentro del codebehind de Pagina.aspx) que si redirecciona y si manda los valores.. que, dentro de Pagina2.aspx podrias recojer con lo que te dice RootK:

Response.Write(Request.Form("Textbox1").ToString)

Ya entendiste ?
  #11 (permalink)  
Antiguo 08/06/2004, 20:57
Avatar de Cbas  
Fecha de Ingreso: enero-2002
Ubicación: capital federal
Mensajes: 437
Antigüedad: 22 años, 3 meses
Puntos: 2
Sip.. ahora si entendí todo a lo más bien... muchas gracias muchachos...
El tema es que, como explicaba antes, yo vengo del ASP común digamos.
Entonces ahí uso el Formulario y con el action del form le paso los parametros por post.
El tema es que estoy haciendo un curso y mi profesor decía que lo mejor era usar variables de sesión para pasar parametros de una página a otra.
Pero una de las buenas prácticas en ASP dice "NO USAR VARIABLES DE SESION, A MENOS QUE SEA IMPRESCINDIBLE!"
Entonces lo que quería era saber cuál les parece la mejor forma para pasar variables de una página a otra pero por POST, no por GET como lo hace el response.redirect para poder ir aprendiendo este mundo de .NET
SALUDOS Y MIL GRACIAS!
__________________
La Perfección es enemigo de lo bueno.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:56.