.NET AJAX 1.0 拡張機能を使用して動的ドロップダウン リストを実装しようとしている Web フォームがあります。必要なビットを正常に実装しましたが、興味深い癖があります。
最初のドロップダウン リストから値を選択すると、コール バックが発生し、ページが正しく更新されます。次の値を選択すると、次のエラーが表示されます。
Sys.WebForms.PageRequestManagerServerErrorException: サーバーで要求を処理中に不明なエラーが発生しました。返されたステータス コード: 404
最初に使用するコントロールに関係なく、最初のリクエストは機能し、2 番目のリクエストは機能しません。IIS ログを見ると、次の行が表示されます。
2008-10-17 14:52:14 W3SVC1 127.0.0.1 POST /Aware/Xtend/mParticipant/NewPlannedService.aspx WIN=Participant_1224255079212&Title=参加者 80 - 127.0.0.1 200 0 0
2008-10-17 14:52:20 W3SVC1 127.0.0.1 POST /Aware/mParticipant/NewPlannedService.aspx WIN=Participant_1224255079212&Title=参加者 80 - 127.0.0.1 404 0 0
ご覧のとおり、投稿の URL が完全に変更されました。Fiddler を使用して要求/応答を監視すると、サーバーからの応答でこれを確認できます。
|formAction||NewPlannedService.aspx|
これは単に実行中のページの名前であり、相対パスとクエリ文字列は省略されています。
この問題を解決するには、Async コールバック メソッドの最後に次を追加します。
this.Form1.Action = Request.Url.PathAndQuery
しかし、これは信じられないほど不自由に思え、カビの生えたチーズのようなにおいがします. 誰でも私を正しい方向に向けることができますか?
更新:さらに調べたところ、NewPlannedService.aspx が元の実行ページではないことがわかりました。Page1.aspx が実行され、Server.Transfer("/folder/NewPlannedService.aspx") が呼び出されました。したがって、ブラウザーの URI はhttp://whatever.com/Page1.aspxでしたが、実際に実行されていたページはhttp://whatever.com/folder/NewPlannedService.aspxでした。