Vista、ビジュアルWeb開発者エクスプレス2010、C#、asp.net、Webフォーム。ctrl-F5でプログラムを実行しています。このプログラムを実行するのは私だけです...そして、ローカルデータベースを使用して私のラップトップでのみ実行されます。
Webページをダウンロードして表示し(分析を行い)、結果をログに記録するアプリを作成します。ページをダウンロードするためのコードを見つけました-うまく機能します。次に、テキストボックスのtextプロパティをページの文字列の内容と同じに設定します。その部分も機能します。次に、コードを再度実行しましたが、テキストボックスの内容が検証され、エラーメッセージが表示されます。
A potentially dangerous Request.Form value was detected from the client (ctl00$MainContent$tbPageContents="
<!DOCTYPE HTML PUBLI...").
結果をテキストボックスに表示しない限り、問題なくコードを何度も実行できます。私はいくつかの異なる解決策を試しました:
テキストボックスでenabled="false"属性を試しました...これにより、コードの最初の部分を表示できますが、テキストボックスが有効になっていないため、上下にスクロールしてファイルを表示できません。したがって、これは実際には問題を解決しません。
ページディレクティブとsystem.web( http://www.asp.net/learn/whitepapers/request-validationによる)でvalidateRequest = "false"を設定しようとしましたが、私が知る限り、効果はありません。 。つまり、まだエラーが発生します。
文字列の内容をテキストボックスに入れる前に、HTMLエンコードを使用してみました。これはディスプレイ上で機能します...しかし、問題の次の反復で失敗するという問題は修正されません。
エラーをキャッチして無視することを考えましたが、コードビハインドを実行する前に検証が行われるようです。
分析を行うために実際にページをウィンドウに印刷する必要はありませんが、これらを一度に、またはスニペットで見ることができれば非常に役立ちます。ブラウザからページソースを作成するだけで済みます。よくわかりません...多分それが好ましい解決策です。
オプション#2が推奨される解決策のように思われるため、機能しなかったことに本当に驚いています。
これが私が使用するページディレクティブです:
<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
CodeBehind="Default.aspx.cs" Inherits="wan._Default" validateRequest="false" %>
validateRequestを停止するために他に何かする必要がありますか?