IHttpHandler Request-Objekt und das virtuelle Verzeichnis Ausgabe
-
19-09-2019 - |
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?
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.