У меня есть URL-адрес, который я хотел бы отобразить в теге привязки, поскольку -находится в представлении Razor. Я бы подумал, что лучше всего подойдет Html.Raw:
@{
string test = "http://someurl.com/someimage.png?a=1234&b=5678";
}
<div>
<a href="@Html.Raw(test)">Test</a>
</div>
Но это не работает. Амперсанд кодируется, и HTML отображается как:
<div>
<a href="http://someurl.com/someimage.png?a=1234&b=5678">Test</a>
</div>
Странно то, что если я вызову Html.Raw вне тега привязки, вывод HTML будет таким, как ожидалось :
<div>
@Html.Raw(test)
<div>
. отображается как:
<div>
http://someurl.com/someimage.png?a=1234&b=5678
</div>
Кто-нибудь может объяснить, почему это так?
Изменить:
Попробовал несколько других вещей и обнаружил, что следующее работает, как и ожидалось:
<div data-url="@Html.Raw(test)"></div>
выходы:
<div data-url="http://someurl.com/someimage.png?a=1234&b=5678"></div>
Чтобы добавить немного больше контекста, моя цель не состоит в том, чтобы использовать URL в теге привязки , поскольку href
могут быть закодированы в HTML и все еще работать (я просто использовал случай тега привязки как пример ). Скорее я хочу использовать URL в теге значения <object> <param>
для объекта Flash. Объект Flash неправильно распознает URL-адрес в кодировке HTML, но мне не удается правильно вывести необработанный URL-адрес.
Я в растерянности. Думаю, пришло время открыть исходный код MVC...