2011-11-22 37 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