2009-03-17 4 views
0

Ok ... le routage d'URL fonctionne correctement, mais ne parvient pas à comprendre comment lire réellement les valeurs dans la page cible.Récupération de valeurs à partir du réacheminement d'URL sur la page cible?

Un exemple illustre l'utilisation de l'objet RouteValue à partir de RequestContext. Maintenant, tout cela se trouve dans l'espace de noms System.Web.Routing, mais tout le monde semble les connecter uniquement à MVC. D'où vient le RequestContext?

Comment lire ces paramètres ???

Querystring est également vide.

TIA! Kevin

Répondre

0

Résolu celui-ci par moi-même ... Yay me !!! :)

Commencé à tronçonner avec des choses et vu l'interface IHttpHandler fournit le RequestContext à la méthode GetHttpHandler. Donc, j'ai modifié ma classe de page de base (j'ai toujours mis une couche entre System.Web.UI.Page et mes propres pages, en l'appelant BasePage ou similaire juste pour le but). J'ai donc ajouté une propriété publique sur PVBasePage pour recevoir un objet RequestContext.

public RequestContext RequestContext { get; set; } 

Ensuite, mon code de classe de routage est la suivante:

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

Ainsi, au lieu de, comme dans l'exemple de code, création de l'instance directement comme IHttpHandler, je crée comme ma propre page. Définissez la propriété de contexte de demande, puis renvoyez la page à l'appelant AS IHttpHandler.

Testé et cela fonctionne. WOO HOO!

J'espère que cela aidera quelqu'un d'autre sur la route.

Questions connexes