这应该是一个常见的问题,但我没有找到vb案例的答案。
所以,问题是我有几个texbox可以包含“<>”标记符号。 因此,任何保存尝试都失败了。 我收到了这个问题
Sys.WebForms.PageRequestManagerServerErrorException: An unknown error occurred while processing the request on the server. The status code returned from the server was: 500
根据事件查看器 - > Windows日志 - >应用程序,真正的错误是
Exception type: HttpRequestValidationException
Exception message: A potentially dangerous Request.Form value was detected from the client (ctl00$cphContent$rgMappingFields$ctl00$ctl04$txtHeaderName="<TEST>").
此框在.aspx页面上显示如下:
<telerik:GridTemplateColumn HeaderText="HeaderName" ItemStyle-Width="20%" HeaderStyle-Width="20%" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="center" UniqueName="HeaderName">
<ItemTemplate>
<asp:TextBox runat="server" ID="txtHeaderName" MaxLength="50"/>
</ItemTemplate>
<HeaderStyle Width="30px" />
</telerik:GridTemplateColumn>
其内部telerik:GridTemplateColumn中的RadGrid
我浏览了几种解决方案,其中最受欢迎的是将ValidateRequest="False"
添加到<%@ Page
。在stackoverflow或其他地方。
我试过这个:
<%@ Page
Language="VB"
Theme="Testing"
MasterPageFile="~/Testing/Main.master"
AutoEventWireup="false"
CodeFile="Book-Storage.aspx.vb"
Inherits="Book_Storage"
EnableEventValidation="false"
ValidateRequest="false"%>
没有任何事情发生。有了新的调试,没有区别。我应该清除cookie还是重新启动IIS才能生效?
不仅我不确定它的telerik是否搞砸了我,但我也对web.config感到好奇。
一些消息来源说,那里需要<httpRuntime requestValidationMode="2.0" />
。其他来源根本没有提到它。据我所知,这取决于.NET版本。 (我的是4.6.1)。
考虑到在项目中我已经有几个使用ValidateRequest="False"
的屏幕但我在web.config中没有这一行,我担心添加它可能会破坏我甚至不知道的东西。
我saw的另一个解决方案是将EnableEventValidation="false"
添加到<%@ Page
,但我已经在代码中使用了它,这没有帮助。
有人可以指出我在这里缺少什么,或者我究竟忽略了什么?