Domanda

Sto scrivendo una classe che eredita da IHttpHandler per lo script e css combinando. Voglio solo unire se querystring ha un parametro speciale definito. Se questo parametro non è definito, allora voglio scrivere il contenuto del file come se il gestore non era nemmeno coinvolto. L'unico problema che sto incontrando è che ho un tag script in una pagina che fa riferimento a uno script in una directory virtuale ma la pagina che sto colpendo è in una sottodirectory dell'applicazione.

La pagina che lo script di controllo viene fatto riferimento da si trova a http: // webserver / Amministratore / Default. aspx . Quando accedo l'oggetto Request nella classe che implementa tutte le proprietà IHttpHandler percorso del file sono le seguenti: webserver / Amministratore / ~ / SharedScripts / control.js. Come posso risolvere questo?

È stato utile?

Soluzione 2

Questa è la soluzione mi è venuta:

string fileContent = string.Empty;
string filePath = context.Request.PhysicalPath;
int tildeLocation = filePath.LastIndexOf("~");

string location = (tildeLocation == -1 ? filePath : context.Server.MapPath(filePath.Substring(tildeLocation, filePath.Length - tildeLocation)));

Altri suggerimenti

In sostanza, è necessario il metodo ResolveUrl, ma non hanno un Page, o eventuali controlli per quella materia. questo articolo spiega come fare senza un oggetto Page a portata di mano.

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