Pregunta

Ok ... el enrutamiento de URL funciona bien, pero no puedo entender cómo leer realmente los valores en la página de destino.

Un ejemplo aquí muestra el uso del objeto RouteValue del RequestContext. Ahora todos estos están en el espacio de nombres de enrutamiento System.Web, pero todo el mundo parece estar conectándolos solo a MVC. ¿De dónde viene el RequestContext?

¿Cómo leo estos parámetros ???

Querystring también está en blanco.

TIA! Kevin

¿Fue útil?

Solución

Solucioné esto por mi cuenta ... ¡Sí! :)

Comencé a revisar cosas y vi que la interfaz IHttpHandler proporciona RequestContext al método GetHttpHandler.

Entonces, modifiqué mi clase de página base (siempre pongo una capa entre System.Web.UI.Page y mis propias páginas, llamándola BasePage o similar solo para ese propósito). Entonces agregué una propiedad pública en PVBasePage para recibir un objeto RequestContext.

public RequestContext RequestContext { get; set; }

Entonces, mi código de clase de enrutamiento es el siguiente:

IHttpHandler IRouteHandler.GetHttpHandler(RequestContext requestContext)
{
    // create the page object as my own page...
    var page = BuildManager.CreateInstanceFromVirtualPath(VirtualPath
        , typeof(PVBasePage)) as PVBasePage;
    // pass in the request context
    page.RequestContext = requestContext;
    // return this page in the form of a IHttpHandler
    return page as IHttpHandler;
}

Entonces, en lugar de, como en el código de muestra, crear la instancia directamente como IHttpHandler, la creo como mi propia página. Establezca la propiedad de contexto de solicitud y luego devuelva la página a la persona que llama AS IHttpHandler.

Probado y funciona. WOO HOO!

Espero que esto ayude a alguien más en el camino.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top