Question

Je suis en train d'écrire une classe qui hérite de IHttpHandler pour le script et css combinaison. Je veux seulement combiner si le querystring a un paramètre spécial défini. Si ce paramètre n'est pas défini alors je veux écrire le contenu du fichier comme si le gestionnaire n'a pas été impliqué même. Le seul problème que je rencontre est que j'ai une balise de script sur une page qui fait référence à un script dans un répertoire virtuel mais la page Je frappais est dans un sous-répertoire de l'application.

La page que le script de contrôle est référencé à partir est situé à http: // serveur web / admin / défaut. ASPX . Quand j'accéder à l'objet de la demande dans la classe qui implémente IHttpHandler toutes les propriétés de chemin de fichier sont les suivantes: serveurweb / Administrateur / ~ / SharedScripts / control.js. Comment résoudre ça?

Était-ce utile?

La solution 2

Ceci est la solution que je suis venu avec:

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

Autres conseils

En gros, vous avez besoin de la méthode ResolveUrl, mais vous n'avez pas Page, ou de tout contrôle pour cette question. Cet article explique comment faire sans objet Page à portée de main.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top