Pergunta

Estou escrevendo uma aula que herda de Ihttphandler para o Script e CSS combinando. Eu só quero combinar se a consulta tiver um parâmetro especial definido. Se esse parâmetro não estiver definido, eu quero escrever o conteúdo do arquivo como se o manipulador não estivesse envolvido. O único problema que estou encontrando é que tenho uma tag de script em uma página que se refere a um script em um diretório virtual, mas a página que estou atingindo está em um subdiretório do aplicativo.

A página da qual o script de controle está sendo referenciado está localizado em http: //webserver/admin/default.aspx. Quando acessar o objeto de solicitação na classe que implementa o IHTTPHandler, todas as propriedades do caminho do arquivo são as seguintes: Web Server/Admin/~/sharedScripts/Control.js. Como faço para resolver isso?

Foi útil?

Solução 2

Esta é a solução que eu criei:

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

Outras dicas

Basicamente, você precisa do ResolveUrl método, mas você não tem um Page, ou quaisquer controles para esse assunto. Este artigo explica como fazer isso sem um Page objeto à mão.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top