Pergunta

Ok ... tenho URL Routing funcionando muito bem, mas não consigo descobrir como realmente ler os valores na página de destino.

Um exemplo aqui mostra o uso do objeto RouteValue do RequestContext. Agora todos eles estão no namespace System.Web.Routing, mas todo mundo parece estar ligando estes apenas MVC. Onde é que o RequestContext vem?

Como faço para ler esses parâmetros ???

QueryString está em branco também.

TIA! Kevin

Foi útil?

Solução

Resolvido este por minha conta ... me Yay !!! :)

Começou a perder tempo com coisas e viu a interface IHttpHandler fornece o RequestContext ao método GetHttpHandler.

Então, eu modifiquei a minha classe de página base (eu sempre coloco uma camada entre System.Web.UI.Page e minhas próprias páginas, chamando-BasePage ou similar apenas para o propósito). Então eu adicionei uma propriedade pública em PVBasePage para receber um objeto RequestContext.

public RequestContext RequestContext { get; set; }

Então, o meu código de classe de roteamento é o seguinte:

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;
}

Assim, em vez de, como no código de exemplo, a criação da instância diretamente como o IHttpHandler, eu criá-la como minha própria página. Defina a propriedade do pedido de contexto e, em seguida, retornar a página para o chamador como um IHttpHandler.

Testado e funciona. WOO HOO!

Espero que isso ajude alguém no caminho.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top