- PR -

無効なポストバックまたはコールバック引数です。

1
投稿者投稿内容
未記入
常連さん
会議室デビュー日: 2004/08/26
投稿数: 34
投稿日時: 2008-11-17 21:04
ASP v1.1で開発しています。


DropDownListとDataGridがあるページで
DropDownListを選択し、submitを実行すると
以下のエラーが発生します。
開発環境では発生せず、本番環境で発生します。

-------------------------------------------------------
Exception Type: System.ArgumentException
Message: 無効なポストバックまたはコールバック引数です。イベントの検証は、構成の <pages enableEventValidation="true"/>、またはページの <%@ Page EnableEventValidation="true" %> を使用して有効にされます。セキュリティの目的により、この機能は、イベントをポストバックまたはコールバックする引数が、それらを最初に表示したサーバー コントロールから発行されていることを確認します。データが有効であり、予期されている場合、検証のためのポストバックまたはコールバック データを登録するために ClientScriptManager.RegisterForEventValidation メソッドを使用してください。
ParamName: NULL
Data: System.Collections.ListDictionaryInternal
TargetSite: Void ValidateEvent(System.String, System.String)
HelpLink: NULL
Source: System.Web
StackTrace Information

場所 System.Web.UI.ClientScriptManager.ValidateEvent(String uniqueId, String argument)
場所 System.Web.UI.Control.ValidateEvent(String uniqueID, String eventArgument)
場所 System.Web.UI.WebControls.DropDownList.LoadPostData(String postDataKey, NameValueCollection postCollection)
場所 System.Web.UI.WebControls.DropDownList.System.Web.UI.IPostBackDataHandler.LoadPostData(String postDataKey, NameValueCollection postCollection)
場所 System.Web.UI.Page.ProcessPostData(NameValueCollection postData, Boolean fBeforeLoad)
場所 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

-------------------------------------------------------

web.configに<pages enableEventValidation="false"/>を設定することで
対処を試みましたが、このタグはv1.1では使えないようでした。

適切な対処方法のご教授お願いします。



Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2008-11-17 21:26
ページ内で設定する。
未記入
常連さん
会議室デビュー日: 2004/08/26
投稿数: 34
投稿日時: 2008-11-18 10:30
Jitta様

ご回答ありがとうございます。

>ページ内で設定する。

該当するページのaspxの
「<%@ Page language="c#" ・・・」の記述を
「<%@ Page EnableEventValidation="false" language="c#" ・・・・」
に変更したところ、以下のエラーが発生しました。

解析エラー メッセージ: 'EnableEventValidation' 属性は 'page' ディレクティブでサポートされていません。

バージョン情報 : Microsoft .NET Framework バージョン :1.1.4322.2407; ASP.NET Version:1.1.4322.2407

rain
ぬし
会議室デビュー日: 2006/10/19
投稿数: 549
投稿日時: 2008-11-18 10:48
引用:

未記入さんの書き込み (2008-11-17 21:04) より:

-------------------------------------------------------
Exception Type: System.ArgumentException
Message: 無効なポストバックまたはコールバック引数です。イベントの検証は、構成の <pages enableEventValidation="true"/>、またはページの <%@ Page EnableEventValidation="true" %> を使用して有効にされます。セキュリティの目的により、この機能は、イベントをポストバックまたはコールバックする引数が、それらを最初に表示したサーバー コントロールから発行されていることを確認します。データが有効であり、予期されている場合、検証のためのポストバックまたはコールバック データを登録するために ClientScriptManager.RegisterForEventValidation メソッドを使用してください。


このメッセージを見ると、ASP.NET 2.0 以降の環境で実行されていそうなんですが、

引用:

未記入さんの書き込み (2008-11-18 10:30) より:

該当するページのaspxの
「<%@ Page language="c#" ・・・」の記述を
「<%@ Page EnableEventValidation="false" language="c#" ・・・・」
に変更したところ、以下のエラーが発生しました。

解析エラー メッセージ: 'EnableEventValidation' 属性は 'page' ディレクティブでサポートされていません。

バージョン情報 : Microsoft .NET Framework バージョン :1.1.4322.2407; ASP.NET Version:1.1.4322.2407


やっぱり ASP.NET 1.1 ?

で、もし上のメッセージが本番環境で、下のメッセージが開発環境で出たのだとすれば、本番環境では間違えて ASP.NET 2.0 以降の環境で実行しているのが原因っぽいと思うのですが、そのあたりどうでしょうか?
1

スキルアップ/キャリアアップ(JOB@IT)