Pregunta

Estoy escribiendo una clase que hereda de IHttpHandler para el script y CSS combinar. Sólo quiero combinar si la cadena de consulta tiene un parámetro especial definido. Si este parámetro no se define a continuación, quiero escribir el contenido del archivo como si el manejador que ni siquiera participó. El único problema que estoy encontrando es que tengo una etiqueta de script en una página que se refiere a un script en un directorio virtual, pero la página que estoy golpeando está en un subdirectorio de la aplicación.

La página que la secuencia de comandos de control se está haciendo referencia a se encuentra en http: // servidor web / Admin / por defecto. aspx. Cuando accedo al objeto Request en la clase que implementa IHttpHandler todas las propiedades de la ruta de archivo son los siguientes: servidor web / Admin / ~ / SharedScripts / control.js. ¿Cómo resuelvo esto?

¿Fue útil?

Solución 2

Esta es la solución que se me ocurrió:

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

Otros consejos

Básicamente, es necesario el método ResolveUrl, pero que no tienen un Page, o cualquier control para el caso. Este artículo explica cómo hacer que un objeto sin Page a mano.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top