Альтернатива Html.Raw в ASP.NET WebForms

Я получал ошибку "потенциально опасный запрос".. в приложении веб-формы я попытался использовать "validatepage = false" и "", после чего я попробовал Server.HtmlEncode, чтобы он сохранял закодированный html в базе данных. Теперь, когда я показал данные в элементе управления ретранслятора Server.HtmlDecode(DataContent.FieldValue("Contents", Container)), он показывает текст с тегами html, такими как <p>asfd</p>..

как я могу решить эту проблему? В режиме просмотра бритвы Html.Raw работает отлично, но что является альтернативой в представлении webform/ASP.NET? Может ли кто-нибудь помочь?

Ответ 1

Вы можете использовать <% = значение%>, которое не будет кодировать значение.

или вы можете реализовать свою собственную версию HTML.Raw

Html.Raw возвращает экземпляр IHtmlString, который почти совпадает со строкой, но ASP.net не кодирует IHtmlString.

Простая функция для репликации HTML.Raw()

    /// <summary>
    /// Stops asp.net from encoding the source HTML string.
    /// </summary>
    /// <param name="source"></param>
    /// <returns></returns>
    public static IHtmlString HTMLRaw(string source)
    {
        return new HtmlString(source);
    }

Ответ 2

Вы можете использовать asp: Literal с Mode = PassThrough