防止从网页发布文本框控件

本文关键字:文本 控件 布文本 网页 | 更新日期: 2023-09-27 18:37:22

我有一个 Web 表单,显示我从 Web 服务获得的数据。 有一个文本框mainComments,其中包含以前通过wform前端添加的所有注释。有时,此数据包含导致和错误A potentially dangerous Request.Form value was detected from the client的文本。 事实是我对表单提交中此文本框的内容不感兴趣。尽管我知道我可以通过不在文本框中显示此数据来解决我的问题,但无论出于何种原因,要求保留文本框。 文本框是只读的,仅用于显示数据。

我的问题是:有什么方法可以隔离此文本框并防止将其作为提交的一部分发布?像mainComments.IncludeInFormSubmit = false;或停止只验证此文本框并防止抛出HttpRequestValidationException之类的操作。 我真的不想关闭整个页面的功能。

防止从网页发布文本框控件

只需使用纯 HTML textarea 标签而不是 asp:textbox 标签。

<textarea>
    <%= mainComments %>
</textarea>

而不是这样的东西

<asp:TextBox id="tbComments" rows="5" Text="mainComments" TextMode="multiline" runat="server" />

您可以使用一种解决方法,为该控件设置 disabled="disabled",它将从回发中排除。 您可以在需要时启用它。

在将值设置为文本框时,您是否尝试过使用 HttpUtility.HtmlEncode?

另一种选择是根本不使用文本框,而只是使用 CSS 将其标记为看起来像在文本框中,如果这是所需的效果。

只需禁用文本框...如下:

<asp:TextBox ID="TextBox1" runat="server" Enabled="False" ></asp:TextBox>

您只能关闭整个页面的输入验证。我能想到的唯一解决方案是关闭输入验证,然后检查所有其他输入字段。