C # HTML String Display - PullRequest
       5

C # HTML String Display

18 голосов
/ 24 января 2012

Я делаю заявку в MVC3, я сохраняю строку в базе данных в этом формате

 <a href='path'>Text</a> Happy

Поле сохраняется правильно, но мне нужно отобразить его на веб-странице с гиперссылкой типа

Текст Счастливый

, но в настоящее время он выглядит как

 <a href='path'>Text</a> Happy

Как я могу отобразить эту строку как HTML на веб-странице?

Ответы [ 5 ]

34 голосов
/ 24 января 2012

Если вы используете шаблонизатор Razor:

@Html.Raw(mystring)
4 голосов
/ 24 января 2012

Если вы используете Razor, вы можете использовать @Html.Raw() в соответствии с кратким справочником Фила Хаака

2 голосов
/ 24 января 2012

лучше кодировать HTML перед сохранением в базе данных. Если вы используете .Net Framework 4, попробуйте это

String TestString = "This is a <Test String>.";
String EncodedString = Server.HtmlEncode(TestString);

См. MSDN

В противном случае используйте anti xss library

Он работает как волшебство и очень прост в реализации. Un-Encoded не только опасен, так как может вызывать XSS-атаки, но также вызывает проблемы с рендерингом на html-странице fornt.

Надеюсь, это поможет ..

0 голосов
/ 24 января 2012

Если вы не используете бритву,

и string text = "<a href='path'>Text</a> Happy";

Тогда вы хотите <%= text %>, а не <%: text %>

Как уже говорили другие, это не считается хорошей практикой из-за внедрения HTML, но кажется, что внедрение HTML - это ваше намерение.

0 голосов
/ 24 января 2012

Я бы действительно советовал не делать этого, потому что очень трудно защититься от проблем с внедрением скрипта.

Тем не менее, если вы считаете, что этим можно управлять, вы сможете использовать @ Html.Raw для рендеринга текста без экранирования.

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