2011-11-22 36 views
0

Vista,visual web developer express 2010,c#,asp.net,webforms。用ctrl-F5运行程序。我是唯一一个能够运行这个程序的人......并且它只会在我的笔记本电脑上使用本地数据库运行。文本框验证强制错误

编写应用程序下载网页,查看它们,(做一些分析),记录一些结果。 我找到了下载页面的代码 - 效果很好。然后,我将文本框的text属性设置为等于页面的字符串内容。该部分也适用。然后我再次运行代码,但文本框的内容得到验证并导致出现错误消息。

A potentially dangerous Request.Form value was detected from the client (ctl00$MainContent$tbPageContents=" 
<!DOCTYPE HTML PUBLI..."). 

我可以反复运行代码没有问题 - 只要我不显示在文本框中的结果。我尝试了不同的解决方案:

  1. 我试图启用在文本框中=“false”属性......这让我查看代码的第一部分,但由于未启用文本框,我可以不要上下滚动看文件。所以这并不能真正解决问题。我试着在页面指令和system.web中设置validateRequest =“false”(根据http://www.asp.net/learn/whitepapers/request-validation),但据我所知它没有任何作用。也就是说,我仍然得到错误。

  2. 我尝试使用html编码字符串内容之前,我把它们放入文本框。这在显示器上工作...但它不能解决在下一次问题迭代时失败的问题。

  3. 我想过捕捉错误并忽略它,但验证似乎发生在它执行我的代码隐藏之前。

我实际上没有页面打印到窗口做了分析,但它是非常有益的,如果我能看看这个东西一次全部或片段。我只能从浏览器中做页面源代码。我不确定...也许这是首选解决方案。

我真的很惊讶,选项#2没有工作,因为这似乎是推荐的解决方案。

这里的页面指令使用:

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" 
    CodeBehind="Default.aspx.cs" Inherits="wan._Default" validateRequest="false" %> 

有别的人需要做的停止validateRequest?

回答

2

你也应该在你的web.config文件中使用<httpRuntime requestValidationMode="2.0" />。这指示ASP.NET将其验证模式更改为2.0版。

您可能也喜欢看this question

+0

就是这样。它会让我接受答案。我以前认为我确实使用过这个命令,但是替代了其他的声明,而不是一起使用。很好!谢谢。 – elbillaf

0

如果这是.NET 4,你可能还需要添加<httpRuntime requestValidationMode="2.0" />到你的web.config