Domanda

Ok ... il routing URL ha funzionato bene, ma non riesco a capire come leggere effettivamente i valori nella pagina di destinazione.

Un esempio qui mostra l'utilizzo dell'oggetto RouteValue da RequestContext. Ora tutti questi sono nello spazio dei nomi System.Web.Routing, ma tutti sembrano collegarli solo a MVC. Da dove proviene RequestContext?

Come posso leggere questi parametri ???

Anche la querystring è vuota.

TIA! Kevin

È stato utile?

Soluzione

Risolto questo da solo ... Yay me !!! :)

Ho iniziato a fare confusione con le cose e ho visto l'interfaccia IHttpHandler fornire RequestContext al metodo GetHttpHandler.

Quindi, ho modificato la mia classe di pagine di base (ho sempre messo un livello tra System.Web.UI.Page e le mie pagine, chiamandolo BasePage o simile solo per lo scopo). Quindi ho aggiunto una proprietà pubblica su PVBasePage per ricevere un oggetto RequestContext.

public RequestContext RequestContext { get; set; }

Quindi, il mio codice della classe di routing è il seguente:

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

Quindi, invece di, come nel codice di esempio, creare l'istanza direttamente come IHttpHandler, la creo come pagina personale. Impostare la proprietà del contesto della richiesta, quindi restituire la pagina al chiamante AS IHHHHORLER

Testato e funziona. WOO HOO!

Spero che questo aiuti qualcun altro lungo la strada.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top