Отключить автоматическую очистку ввода пользователя - PullRequest
1 голос
/ 04 июля 2019

Я настраиваю новый сервер ASP.NET и хочу добавить HTML, который получен в результате моего собственного метода фильтрации, потому что я уже использую свой собственный метод фильтрации.Но использование @ автоматически очистит код с помощью метода очистки ASP.NET, я не хочу этого.

Я пытался использовать символ @, чтобы использовать C # на моей странице Razor, но этопродолжает использовать метод очистки ASP.NET.

public string GetFormattedName(string name)
{
    // Sanitize user input
    return name.Replace("<","&gt;"); // And do my own fancy sanitization.
}
<h3>@Model.GetFormattedName("<strong class="bold-tag">etc</strong>")</h3>

Рендеринг HTML выглядит следующим образом:

<strong class="bold-tag">etc</strong>

, но он должен быть

и т. д.

(в формате HTML)

Также у меня есть специальный синтаксис цветового кода, который выглядит следующим образом: [color:ff0000][/color]

, и я хочу, чтобы он все еще работал, и не использовать метод очистки ASP.NET

Ответы [ 2 ]

0 голосов
/ 04 июля 2019

Просто используйте Html.Raw

Попробуйте это например:

<h3>@Html.Raw(@"<strong class=""bold-tag"">etc</strong>")</h3>

Должен быть представлен как:

<h3><strong class="bold-tag">etc</strong></h3>
0 голосов
/ 04 июля 2019

Попробуйте привести к IHtmString.

Представлено как:

<h3>@Html.Raw(Model.GetFormattedName("<strong class="bold-tag">etc</strong>"))</h3>
...