Por que o Html.Raw está escapando do "e" comercial na marca de âncora da ASP.NET MVC 4?
Eu tenho uma URL que gostaria de renderizar em uma tag âncora como está em uma visualização Razor. Eu teria pensado que o Html.Raw seria o caminho a seguir:
@{
string test = "http://someurl.com/someimage.png?a=1234&b=5678";
}
<div>
<a href="@Html.Raw(test)">Test</a>
</div>
Mas isso não funciona. O e comercial é codificado e o HTML é renderizado como:
<div>
<a href="http://someurl.com/someimage.png?a=1234&b=5678">Test</a>
</div>
O mais estranho é que, se eu fizer a chamada Html.Raw fora da tag de âncora, a saída HTML será a esperada:
<div>
@Html.Raw(test)
<div>
é processado como:
<div>
http://someurl.com/someimage.png?a=1234&b=5678
</div>
Alguém pode explicar por que isso é?
Editar:
Tentei algumas outras coisas, e descobri que o seguinte funciona como esperado:
<div data-url="@Html.Raw(test)"></div>
saídas:
<div data-url="http://someurl.com/someimage.png?a=1234&b=5678"></div>
Para adicionar um pouco mais de contexto,meu objetivo não é realmente usar o URL em uma tag de âncora, Desde ahref
s pode ser codificado em HTML e ainda funcionar (eu usei apenas o caso da tag âncora como exemplo). Em vez disso, desejo usar o URL em um<object> <param>
tag de valor para um objeto Flash. O objeto Flash não reconhece corretamente a URL codificada em HTML, mas não consigo fazer com que a URL não processada seja reproduzida corretamente.
Eu estou perdido. Hora de quebrar o código fonte do MVC, eu acho ...