禁用服务器控件的ValidateInput

时间:2010-07-30 11:20:03

标签: asp.net security asp.net-3.5 validation

- 我正在使用 ASP.NET 3.5 。 我有一个页面,我想以格式化的方式显示列表:

<asp:RadioButtonList runat="server" ID="Options">
    <asp:ListItem Text="Yes.<br /><span>Detailed info.</span>" />
    <asp:ListItem Text="No.<br /><span>Detailed info.</span>" />
</asp:RadioButtonList>

现在有一个明显的问题是我无法将此控件发布到服务器,因为它会检测到代码中包含潜在危险的代码(文本属性中的html代码)列表项目)。
另一种方法是不对此列表使用服务器控件,但我需要服务器端代码上的数据,所以我宁愿将其保留为服务器控件。
my 的角度来看,我不需要验证这个特定的控件,因为这些数据都不会以任何方式持久化,并且这些数据都不会与我的应用程序的任何部分交互。 /> 另一方面,我确实想保留页面其余部分的ValidateRequest功能,所以我不能只设置

<%@ Page ValidateRequest="false" ...

问题:

有没有办法以这种方式显示数据而不会出现此错误?
或者是否有任何方法可以禁用该特定控件的请求验证功能?像

这样的东西
<myLibrary:myUserControl ValidateRequest="false" ...

2 个答案:

答案 0 :(得分:1)

不要禁用请求验证。只需更改您的RadioButtonList:

<asp:RadioButtonList ID="Options" runat="server">
    <asp:ListItem Value="Yes">Yes<br /><span>Detailed Info</span></asp:ListItem>
    <asp:ListItem Value="No">No<br /><span>Detailed Info</span></asp:ListItem>
</asp:RadioButtonList>

答案 1 :(得分:0)

您可以尝试多个RadioButton控件,控件中没有文本,并将HTML内容放在控件旁边。您可以通过指定GroupName属性对它们进行分组。

您只能禁用整个页面的验证,因为它是一个页面检查功能。