ASP.NET WebForms中Html.Raw的替代方案

问题描述 投票:15回答:2

我收到错误“一个潜在的危险请求”..在Web窗体应用程序中我尝试过“validatepage = false”和“”然后我尝试了Server.HtmlEncode,因此它将编码的html保存在数据库中。现在,当我通过Server.HtmlDecode(DataContent.FieldValue("Contents", Container))显示Repeater控件中的数据时它显示带有<p>asfd</p>等html标签的文本。

我该如何解决这个问题?在剃刀视图中Html.Raw工作正常,但在webform视图/ ASP.NET中有什么替代方案?有人可以帮忙吗?

asp.net webforms
2个回答
10
投票

您可以使用<%= value%>,它不会对值进行编码。

或者您可以实现自己的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);
    }

6
投票

您可以使用带有Mode = PassThrough的asp:Literal

© www.soinside.com 2019 - 2024. All rights reserved.