Pourquoi Html.Raw échappe-t-il à l'esperluette dans la balise d'ancrage dans ASP.NET MVC 4?

J'ai une URL, je voudrais rendre dans une balise d'ancrage dans un Rasoir vue. J'aurais pensé Html.Raw serait la voie à suivre:

@{
    string test = "http://someurl.com/someimage.png?a=1234&b=5678";
}

<div>
    <a href="@Html.Raw(test)">Test</a>
</div>

Mais cela ne fonctionne pas. L'esperluette encodés et le code HTML est affiché comme:

<div>
    <a href="http://someurl.com/someimage.png?a=1234&amp;b=5678">Test</a>
</div>

La chose étrange est que si je ne le Html.Raw appel à l'extérieur de la balise d'ancrage, la sortie HTML est comme prévu:

<div>
    @Html.Raw(test)
<div>

est traduit comme:

<div>
    http://someurl.com/someimage.png?a=1234&b=5678
</div>

Quelqu'un peut-il expliquer pourquoi il en est?

Edit:

Essayé quelques autres choses, et a constaté que la suite fonctionne comme prévu:

<div data-url="@Html.Raw(test)"></div>

sorties:

<div data-url="http://someurl.com/someimage.png?a=1234&b=5678"></div>

Pour ajouter un peu plus de contexte, mon but n'est pas fait d'utiliser l'URL dans une balise d'ancragedepuis hrefs peut être HTML codé et encore (j'ai juste utilisé la balise d'ancrage cas comme un exemple). Plutôt je souhaite utiliser l'URL dans un <object> <param> balise de valeur pour un objet Flash. L'objet Flash n'est pas reconnaître correctement le HTML codé URL, mais je ne peux pas obtenir l'URL brut à la sortie correctement.

Je suis à une perte. Le temps de sortir le MVC code source, je suppose...

source d'informationauteur Joe Waller