Principales respuestas
pasar el valor de una variable a una vista

Pregunta
-
Hola
A ver si me explico bien,
quiero pasar el valor de una variable a una vista en vb.net
En el archivoA.aspx.vb
Private Sub CargarGridCobrados(A As Integer(), pagado As String)Response.Redirect("archivoB.aspx") ======> aqui es donde quiero q se me muestre el valor de pagado (y no en archivoA.aspx)
cómo puedo hacerlo? gracias
Jose
- Cambiado Enrique M. Montejo viernes, 1 de julio de 2016 14:29 Desarrollo web.
Respuestas
-
[...] Response.Redirect("Default.aspx"?MiDato=" + variable) está controlado. Pero para mostrarla no me ha quedado muy claro ya que no tengo declaraciones de variables dentro de la vista.
Si el Redirect va a parar a Default.aspx, entonces no es una vista sino una página. Y si es una página, entonces siempre te vas a encontrar con que tiene asociado un fichero con el code-behind, que se llamará Default.aspx.vb. Y en ese fichero siempre puedes declarar todas las variables que quieras. En este caso concreto, la línea que te indiqué antes:
Dim valor As String = Request.QueryString("MiDato")
la pondrías dentro del evento Page_Load en el Default.aspx.vb.
Evidentemente, una vez que has recibido una variable con el dato deseado, puedes hacer con ella lo que quieras, por ejemplo, si únicamente quieres presentarla en la pantalla, basta con que arrastres un Label al diseño del .aspx y luego en el Page_Load pongas Label1.Text=valor.
- Marcado como respuesta José De AlvaModerator viernes, 1 de julio de 2016 14:41
Todas las respuestas
-
-
¿Vista? ¿Te refieres a la "V" de MVC? ¿Desarrollas en ASP Net MVC?
-
-
-
vb.net, no es MVC
Eso no está nada claro. Puedes programar MVC con VB.NET. Y también puedes programar WPF con VB.NET, usando o sin usar MVVM. Y también puedes hacer WinForms con VB.NET, y puedes hacer WebForms con VB.NET, y Servicios Windows con VB.NET, y muchas otras cosas. Básicamente, lo que quiero hacerte ver es que decir que "desarrollas con VB.NET" no es decir nada acerca del tipo de aplicación que estás desarrollando; todas o casi todas se pueden hacer con VB.NET. Aunque en este caso, y dado el Response.Redirect("algo.aspx"), cabe entender que estás usando WebForms.
Usualmente, la forma más simple de pasar un parámetro de una página a otra (en WebForms solemos decir "página", no "vista") es pasarlo en el query string, como ya te han indicado en otra respuesta:
Response.Redirect("Default.aspx"?MiDato=" + variable)
Y luego para recogerlo en la página de destino:
Dim valor As String = Request.QueryString("MiDato")
- Editado Alberto PoblacionMVP jueves, 30 de junio de 2016 6:52
-
Gracias por tu explicacion, he trabajado en MVC con C# pero no en vb.net por eso ando un poco perdido ya que esto sería:
tengo un ficheroA.aspx.vb con su ficheroA.aspx
un ficheroB.aspx.vb con su ficheroB.aspxBien, pues quiero coger una variable del ficheroA.aspx.vb y que la muestre en la vista ficheroB.aspx
Entiendo que para enviar la variable sería: Response.Redirect("Default.aspx"?MiDato=" + variable) está controlado. Pero para mostrarla no me ha quedado muy claro ya que no tengo declaraciones de variables dentro de la vista. (no se si me he explicado bien, muchas gracias por vuestra ayuda)
Jose
-
[...] Response.Redirect("Default.aspx"?MiDato=" + variable) está controlado. Pero para mostrarla no me ha quedado muy claro ya que no tengo declaraciones de variables dentro de la vista.
Si el Redirect va a parar a Default.aspx, entonces no es una vista sino una página. Y si es una página, entonces siempre te vas a encontrar con que tiene asociado un fichero con el code-behind, que se llamará Default.aspx.vb. Y en ese fichero siempre puedes declarar todas las variables que quieras. En este caso concreto, la línea que te indiqué antes:
Dim valor As String = Request.QueryString("MiDato")
la pondrías dentro del evento Page_Load en el Default.aspx.vb.
Evidentemente, una vez que has recibido una variable con el dato deseado, puedes hacer con ella lo que quieras, por ejemplo, si únicamente quieres presentarla en la pantalla, basta con que arrastres un Label al diseño del .aspx y luego en el Page_Load pongas Label1.Text=valor.
- Marcado como respuesta José De AlvaModerator viernes, 1 de julio de 2016 14:41
-