Амперсанд HTML кодируется как &.Есть ли способ предотвратить это? - PullRequest
2 голосов
/ 15 февраля 2011

У меня есть следующий блок кода, который создает Action Link для компании.

Html.ActionLink(Html.Encode(currentCompany.GetDisplayName()), "CompanyFactsheet", "Company",
                                                       new {friendlyURL = currentCompany.FriendlyURL.ToLower()}, null)%>

Некоторые из названий компаний содержат '&', и это отображается как &

Есть ли способ, которым я могу Html.Encode назвать названия компаний, но при этом сохранить символ & так, как он должен выглядеть, вместо &?

Ответы [ 3 ]

4 голосов
/ 15 февраля 2011

Похоже, вам не нужно кодировать при использовании вспомогательного метода ActionLink.Он внутренне кодирует:

Как обойти кодировку HTML при использовании Html.ActionLink в Mvc?

3 голосов
/ 15 февраля 2011

Дважды проверьте разметку, которая генерируется. Единственный способ, которым & должен отображаться на странице, - это если вы дважды кодируете символ амперсанда (поэтому источник страницы будет показывать &).

Это может быть вызвано либо сохранением уже закодированного символа HTML, либо использованием <%: (который автоматически кодирует все для вас HTML) вместо <%= в вашем представлении.

0 голосов
/ 15 февраля 2011

Замените & на какой-нибудь другой символ перед сохранением и замените его обратно ПОСЛЕ кодировки (используя, скорее всего, jquery) ... Я знаю, это звучит как излишнее, но если вам действительно нужен Html.Encode (или <% :,или @ в Razor), это лучший способ ИМХО .... </p>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...