これには明らかな解決策があるはずですが、私は困惑しています。XHR
私たちはほとんどベースのアプリケーションを開発しているので、私たちが使用している間.aspx
、典型的なコントロールで行われることはほとんどありません。ただし、いくつかの場所では、レポートなどの期間のいくつかのドロップダウンを使用して、基本的な「このデータをユーザーのスプレッドシートにスローする」ことを行っています。
問題は、asp:DropDownList
コントロールを使用すると、コントロールを配置したすべてのページで、送信時にイベント検証エラーがスローされることです。問題を引き起こす漂遊JSがないことを確認するために、アプリケーションのマスターページの残りの部分を共有しないテストページを作成しました(つまり、クライアント側でJSを変更することはまったくありません)。
次の例でを削除するDropDownList
と、ボタンのクリックは問題なく発生します。図のようにページが表示された状態でボタンをクリックすると、がスローされますEvent Validation error
。
ただし、4.0統合アプリプール内の同じマシンで実行されている他のアプリケーションはこの動作を示さないため、構成と関係があると思います。これweb.config
はかなり標準的です...httpCompression
必死の試みでセクションをオフにしようとしましたが、役に立ちませんでした。
誰かがここからどこから始めるべきかについての提案がありますか?覚えておいてください...クライアント側の変更は行われていません。これはサーバーからブラウザに直接送信され、ASPで生成されたボタンを「クリック」します。
ページディレクティブでイベント検証をオフにするとエラーは解消されますが、解決できる場合は検証をオフにしたくありません。
環境:
- Windows 7 Pro
- IIS 7.5
- .NET4.0統合アプリプール
- IE9 / Chrome / Firefox/Safariでエラーが発生する
ページ:
<html>
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:DropDownList ID="ddlDays" runat="server">
<asp:ListItem Text="30 Days" Value="30"></asp:ListItem>
<asp:ListItem Text="60 Days" Value="60"></asp:ListItem>
<asp:ListItem Text="90 Days" Value="90"></asp:ListItem>
</asp:DropDownList>
<asp:Button ID="butExport" Text="Export" runat="server" />
</div>
</form>
</body>
</html>
コードビハインド:
protected void Page_Load(object sender, EventArgs e) {
butExport.Click += new EventHandler(butExport_Click);
}
void butExport_Click(object sender, EventArgs e) {
Syslog("clicked");
}
フォームデータ(Chrome Inspectorによる):
- __VIEWSTATE:/ wEPDwULLTIwOTUzNjUzOTVkZIiv1cdholWibyWL8h5HASwxedB47NUpctCv8OQc1CWM
- __EVENTVALIDATION:/ weWAgL0voCyDQKDgcL6CAX34hdaRiHyNiY1xLIh5Pr6aj5q8h8gGG875vMq1SXF
- ddlDays:30
- butExport:Export