Frage

Ich schreibe eine Klasse, die von IHttpHandler erbt für Skript und CSS zu kombinieren. Ich möchte nur verbinden, wenn der Abfragezeichenfolgeflag einen speziellen Parameter definiert hat. Wenn dieser Parameter nicht definiert ist, möchte ich den Inhalt der Datei schreiben, als ob der Handler nicht einmal beteiligt war. Das einzige Problem, das ich bin die Begegnung ist, dass ich einen Skript-Tag auf einer Seite, die in einem virtuellen Verzeichnis auf ein Skript verweist aber die Seite, die ich schlagen bin, ist in einem Unterverzeichnis der Anwendung.

Die Seite, dass das Steuerskript aus verwiesen wird, befindet sich an http: // Webserver / Admin / Default. aspx . Wenn ich auf die Objektanforderung in der Klasse, die IHttpHandler alle Dateipfad Eigenschaften sind folgende implementiert: Webserver / Admin / ~ / shared / control.js. Wie behebe ich das?

War es hilfreich?

Lösung 2

Das ist die Lösung, die ich kam mit:

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

Andere Tipps

Grundsätzlich müssen Sie die ResolveUrl Methode, aber Sie haben keine Page oder Steuerungen für diese Angelegenheit. dieser Artikel erklärt, wie ohne Page Objekt zur Hand zu tun.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top