ResolveUrl senza un ASP.NET Pagina

Sto cercando un modo per risolvere un url relativo al modo in cui si farebbe con una pagina o istanza di controllo ( MSDN Docs ), ad esempio:

Page.ResolveUrl("~/common/Error.aspx");

…ma quando ho solo un HttpContext, per me, come quando mi trovo in un HttpHandler.

Ho bisogno di utilizzare una funzione personalizzata, come quello visto qui?

O c’è un modo per ottenere la funzione di base utilizzate dalla Pagina.

InformationsquelleAutor cweston | 2011-02-04



3 Replies
  1. 17

    Questa domanda COSÌ (ASP.Net: Utilizza Sistema.Web.Interfaccia utente.Di controllo.ResolveUrl() in un comune/funzione statica) appare utile…in pratica, è possibile utilizzare il VirtualPathUtility di classe, che è sotto il Sistema.Web spazio dei nomi. C’è un’ulteriore risposta a quella domanda che dice di stare attenti a parametri QueryString, ma una soluzione che è anche fornito.

    Allo stesso tempo, Rick Strahl codice è abbastanza carino!

    • che modelli buoni e pratiche ? System.Web.VirtualPathUtility, HttpContext.Current.Handler o Rick Strahl's code ?
  2. 1

    Usare qualcosa come questo –
    Controlli è il nome di una cartella nella vostra applicazione e myController è il nome del controller. per creare l’istanza e caricare il controller che si può fare con:

    Controls_myController ctrl = Page.LoadControl(Page.ResolveUrl("controls/myController.ascx"));

    Spero che questo aiuta.

Lascia un commento