Recuperando Valores de URL Rerouting na página de destino?
-
19-08-2019 - |
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
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.