Modificar Coleccion Form en Request

63 views
Skip to first unread message

Mauro Decima

unread,
Jun 7, 2011, 1:50:27 PM6/7/11
to altnet-...@googlegroups.com
Estimados, alguien conoce una forma de hacer lo siguiente?
Necesito agregar un valor a la coleccion de form del objeto request para luego redirigir toda la peticion a una pagina.
Mi primer analisis seria algo asi, pero la coleccion es de solo lectura.
 
        protected void Page_Load(object sender, EventArgs e)
        {
            Request.Form.Add("NewFormValue""xxx");
            Server.Transfer("MyNewPage.aspx");
 
           //Error Collection is read-only
       }
    
 
 Gracias de antemano,
Mauro


--

Convertí tus archivos a pdf gratis en http://www.guardarcomopdf.com

Angel Java Lopez

unread,
Jun 7, 2011, 1:56:04 PM6/7/11
to altnet-...@googlegroups.com
Hola gente!

Hmmm... que recuerde, se usaba Context, que tambien es una coleccion de items con nombre. Te "dura" durante todo el proceso del pedido del cliente, aun con Server.Transfer. Luego, en el PageLoad o cerca, de MyNewPage.aspx, tomaria los datos del Form, Y DEL CONTEXT.

Ese seria mi primer "approach". Lo interesante de Context que te permite guardar object cualesquiera, no solo strings. El Server.Transfer no afecta/avisa al navegador, es algo resuelto en el servidor, asi que es una especie de GoTo (hmmm... creo que si se fijan en la ventana de output del VS, van a ver que muere un thread, luego del Server.Transfer no se ejecuta nada mas en ese thread; pero vean de confirmar si es asi)

(Nota para Javeros: el Request.Form seria el request.getParameter de JSP, donde los parametros son de solo lectura, el Context de ASP.NET vino a emular el request.set/getAttribute)

Nos leemos!

Angel "Java" Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

2011/6/7 Mauro Decima <mde...@gmail.com>
--
Has recibido este mensaje porque estás suscrito al grupo "AltNet-Hispano" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a altnet-...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a altnet-hispan...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/altnet-hispano?hl=es.

Juan Nallar

unread,
Jun 7, 2011, 2:06:44 PM6/7/11
to altnet-...@googlegroups.com
Los viejos hábitos me dicen que uses un campo oculto en la página, cosa de recibir el valor en el request.
 
Acordate que si modificas el request de alguna manera, no es una práctica estandar y por lo tanto va a ser difícil de mantener luego. (por ejemplo herramientas como fiddler no lo van a ver)
 
Saludos.

Ariel Piñeiro

unread,
Jun 7, 2011, 2:08:25 PM6/7/11
to altnet-...@googlegroups.com
Mauro,
         es como dice Angel, no es buena práctica modificar el contenido de una petición del cliente; de todas formas si ves que dentro del proyecto mas o menos vas viendo que van a aparecer estas cosas te recomiendo utilizar el Patrón Interception Filter para cada request en particular porque sino te va a costar mantenerlo, sobre todo si no estás solo en el proyecto.
         Además los inspectores de Red no van a ver ese tipo de cosas ya que van "por detrás".



Saludos,
Ariel Piñeiro
http://ar.linkedin.com/in/arielpineiro



2011/6/7 Juan Nallar <nalla...@gmail.com>

Mauro Decima

unread,
Jun 7, 2011, 2:35:49 PM6/7/11
to altnet-...@googlegroups.com
Gracias por las ideas.
Angel, fantastico lo del Context, la idea era subir informacion de parametrizacion al request que no estuviera escrita en el browser del usuario o en la url.
PD:Se descarto el uso de variables de sesion que quizas seria el objeto mas natural para resolver esto.
 
Gracias a todos!!!
 
2011/6/7 Ariel Piñeiro <arie...@gmail.com>

Walter Poch

unread,
Jun 7, 2011, 3:54:11 PM6/7/11
to altnet-...@googlegroups.com
Creo que Angel se refiere a HttpContext.Items (http://msdn.microsoft.com/en-us/library/system.web.httpcontext.items.aspx)

Es una colección que dura todo el request, y es posible escribir desde HttpModules, para aplicar algo de Filtering.

No estoy seguro si te sirve, pero pegale una mirada por las dudas.

Saludos,
Saludos,

Walter G. Poch
Sr. .Net Developer
--------------------------------------------
Cell: +54 (9 341) 3353273
walte...@gmail.com
Reply all
Reply to author
Forward
0 new messages