1

我在文本字段和 AutoPostBack 中遇到 HTML 字符问题。

我有如下内容:

<asp:FormView ID="FormView1" runat="server" 
              DataKeyNames="ID" DataSourceID="SqlDataSource4"
              ForeColor="#333333" DefaultMode="Edit" 
              HorizontalAlign="Center" Font-Size="X-Small"
              Width="100%" OnDataBound="FormView1_DataBound">
      <asp:TextBox ID="fooTextBox" runat="server" 
                   Width="100%" Rows="4" TextMode="MultiLine"
                   CssClass="tr4" Text='<%# Bind("foo") %>' AutoPostBack="true"
                   OnTextChanged="ChangedRecord" />
</asp:FormView>

现在,当用户进入文本框时,类似

<富>

由于文本字段中的 HTML 字符,它将引发错误 500。

在通过 AutoPostBack 发送之前,我该如何管理它?

4

2 回答 2

2

这是因为Page的ValidateRequest属性(默认值为true)。您可以关闭 ValidateRequest,以便允许标签、脚本等(潜在危险值)。

如果您的应用程序以.net 框架版本 4.0为目标,则在 web.config 中添加以下部分:

<system.web>
    <compilation debug="true" targetFramework="4.0" />
    <httpRuntime requestValidationMode="2.0" />
</system.web>
于 2012-08-01T04:04:42.817 回答
0

如果您需要将 html/xml 输入到文本框中,最好的处理方法是对您的输入 进行html 编码。<foo>将成为&lt;foo&gt;这将使表单发布变得安全。请记住,您需要在提交使用后对其进行解码。使用以下链接检查 html 编码。http://www.opinionatedgeek.com/DotNet/Tools/HTMLEncode/Encode.aspx/

于 2012-08-01T04:10:47.453 回答