Подтвердить что ты не робот

С# HTML String Display

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

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

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

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

но в настоящее время он отображается как

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

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

4b9b3361

Ответ 1

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

@Html.Raw(mystring)

Ответ 2

Если вы используете Razor, вы можете использовать @Html.Raw() в соответствии с рекомендацией Phil Haack

Ответ 3

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

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

См. msdn

В противном случае используйте анти-xss-библиотеку

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

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

Ответ 4

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

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

Ответ 5

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

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

Затем вы хотите <%= text %>, а не <%: text %>

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