solicitar cadena de consulta en variable
Frecuentes
Visto 5,401 veces
4
hola, estoy tratando de obtener la identificación de una URL y enviarla al lado de Clint, esto es lo que hice
esta es mi url:
http://localhost:53010/edit.aspx?Id=4
código detrás
Public Partial Class Edit
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Handles Me.Load
End Sub
Private _myId As String = Request.QueryString("id")
Public Property myId() As String
Get
Return _myId
End Get
Set(ByVal value As String)
_myId = value
End Set
End Property
Cliente final de clase
<%= myId%>
error
Request is not available in this context
esto también es lo que obtengo cuando muevo el accesorio privado a page_load() "private" no es válido en la declaración de variable local; alguna idea de lo que está sucediendo
Muchas Gracias
resuelvo este problema aqui esta la respuesta
Public Partial Class Edit
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Handles Me.Load
MyIdVal = Request.QueryString("id")
End Sub
Private _myIdVal As String
Public Property MyIdVal() As String
Get
Return _myIdVal
End Get
Set(ByVal value As String)
_myIdVal = value
End Set
End Property
Clase final
4 Respuestas
3
Esa es una inicializador de campo.
Los inicializadores de campo se ejecutan antes que el constructor y no pueden acceder a la instancia que están inicializando.
Por lo tanto, no puede utilizar el Request
propiedad allí.
Necesitas mover eso al constructor o Page_Load
.
contestado el 22 de mayo de 12 a las 15:05
cuando lo muevo a la carga de la página, aparece este error "privado" no es válido en la declaración de variable local - Mina gabriel
Necesitas mover la inicialización. - SLaks
myId = Request.QueryString("id")
- SLaks
cuando hago Dim myId As String = Request.QueryString ("id"), funciona bien, pero como sé, necesito una propiedad para enviar myId al lado del cliente, ¿verdad? - Mina gabriel
Debe declarar un campo en la clase y establecer su valor en Page_Load
. - SLaks
1
Estás accediendo al Request
demasiado temprano.
Funcionará si configuras myId
on Init
, Page_Load
o cualquier otro evento de página similar.
contestado el 22 de mayo de 12 a las 15:05
Su explicación (primera línea) es incorrecta; esto no tiene nada que ver con el ciclo de vida de la página. - SLaks
cuando lo muevo a la carga de la página, aparece este error "privado" no es válido en la declaración de variable local - - Mina gabriel
0
Intente configurar _myId en su PageLoad.
contestado el 22 de mayo de 12 a las 15:05
cuando lo muevo a la carga de la página, aparece este error "privado" no es válido en la declaración de variable local - - Mina gabriel
-1
Así que quería una clase con propiedades que se establecieron a partir de cadenas de consulta y encontré este hilo. También quería poder acceder a las propiedades en la página principal e incluso en JavaScript desde una sola ubicación. Esto es lo que se me ocurrió:
// App_Code/QueryStrings.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
/// <summary>
/// Summary description for QueryStrings
/// </summary>
public class QS
{
private int id = -1;
public QS()
{
if (HttpContext.Current.Request.QueryString["id"] != null)
try
{
Int32.TryParse(HttpContext.Current.Request.QueryString["id"], out id);
}
catch
{
id = -2;
}
else
id = -3;
}
public int ID
{
get
{
return id;
}
}
}
Luego puede llamarlo desde su página .aspx de la siguiente manera:
<body>
<form id="form1" runat="server">
<div>
<% QS qs = new QS(); %>
ID = <%= qs.ID %>
</div>
</form>
</body>
Por supuesto, puede llamar desde el código subyacente con la misma sintaxis.
respondido 29 mar '13, 14:03
Está utilizando tryparse (devuelve bool, nunca lanza) y luego detecta una excepción. id = -2 nunca sucederá. - Casper León Nielsen
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas asp.net .net vb.net or haz tu propia pregunta.
Debe aprender cómo funcionan las clases y los campos de VB.Net. - SLaks