我在文本字段和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>
现在,当用户进入类似
的文本框时&LT; FOO&GT;
由于文本字段中的HTML字符,它将引发错误500。
如何在通过AutoPostBack发送之前管理它?
答案 0 :(得分:2)
这是,因为Page的ValidateRequest属性的(默认值为 true )。您可以关闭ValidateRequest,以便允许标记,脚本等(潜在的危险值)。
如果您的应用程序定位到.net framework version 4.0,请在web.config中添加以下部分:
<system.web>
<compilation debug="true" targetFramework="4.0" />
<httpRuntime requestValidationMode="2.0" />
</system.web>
答案 1 :(得分:0)
如果您需要在文本框中输入html / xml,处理它的最佳方法是 html encode 您的输入。
<foo>
将成为<foo>
这将使表单发布更安全。请记住,您需要在提交后对其进行解码才能使用。使用以下链接检查html编码。 http://www.opinionatedgeek.com/DotNet/Tools/HTMLEncode/Encode.aspx/