C# と VB.NET の質問掲示板
ASP.NET、C++/CLI、Java 何でもどうぞ
掲示板トップ
C# と VB.NET 入門
新規作成
利用方法
ツリー表示
トピック表示
ランキング
記事検索
過去ログ
ログ内検索
キーワードを複数指定する場合は 半角スペース で区切ってください。
検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
[返信]をクリックすると返信ページへ移動します。
キーワード
/
検索条件
/
(AND)
(OR)
検索範囲
/
(現在のログ)
(全過去ログ)
(過去ログ1)
(過去ログ2)
(過去ログ3)
(過去ログ4)
(過去ログ5)
(過去ログ6)
(過去ログ7)
(過去ログ8)
(過去ログ9)
(過去ログ10)
(過去ログ11)
(過去ログ12)
(過去ログ13)
(過去ログ14)
(過去ログ15)
(過去ログ16)
(過去ログ17)
(過去ログ18)
(過去ログ19)
(過去ログ20)
(過去ログ21)
(過去ログ22)
(過去ログ23)
(過去ログ24)
(過去ログ25)
(過去ログ26)
(過去ログ27)
(過去ログ28)
(過去ログ29)
(過去ログ30)
(過去ログ31)
(過去ログ32)
(過去ログ33)
(過去ログ34)
(過去ログ35)
(過去ログ36)
(過去ログ37)
(過去ログ38)
(過去ログ39)
(過去ログ40)
(過去ログ41)
(過去ログ42)
(過去ログ43)
(過去ログ44)
(過去ログ45)
(過去ログ46)
(過去ログ47)
(過去ログ48)
(過去ログ49)
(過去ログ50)
(過去ログ51)
(過去ログ52)
(過去ログ53)
(過去ログ54)
(過去ログ55)
(過去ログ56)
(過去ログ57)
(過去ログ58)
(過去ログ59)
(過去ログ60)
(過去ログ61)
(過去ログ62)
(過去ログ63)
(過去ログ64)
(過去ログ65)
(過去ログ66)
(過去ログ67)
(過去ログ68)
(過去ログ69)
(過去ログ70)
(過去ログ71)
(過去ログ72)
(過去ログ73)
(過去ログ74)
(過去ログ75)
(過去ログ76)
(過去ログ77)
(過去ログ78)
(過去ログ79)
(過去ログ80)
(過去ログ81)
(過去ログ82)
(過去ログ83)
(過去ログ84)
(過去ログ85)
(過去ログ86)
(過去ログ87)
(過去ログ88)
(過去ログ89)
(過去ログ90)
(過去ログ91)
(過去ログ92)
(過去ログ93)
(過去ログ94)
(過去ログ95)
(過去ログ96)
(過去ログ97)
(過去ログ98)
(過去ログ99)
(過去ログ100)
(過去ログ101)
(過去ログ102)
(過去ログ103)
(過去ログ104)
(過去ログ105)
(過去ログ106)
(過去ログ107)
(過去ログ108)
(過去ログ109)
(過去ログ110)
(過去ログ111)
(過去ログ112)
(過去ログ113)
(過去ログ114)
(過去ログ115)
(過去ログ116)
(過去ログ117)
(過去ログ118)
(過去ログ119)
(過去ログ120)
(過去ログ121)
(過去ログ122)
(過去ログ123)
(過去ログ124)
(過去ログ125)
(過去ログ126)
(過去ログ127)
(過去ログ128)
(過去ログ129)
(過去ログ130)
(過去ログ131)
(過去ログ132)
(過去ログ133)
(過去ログ134)
(過去ログ135)
(過去ログ136)
(過去ログ137)
(過去ログ138)
(過去ログ139)
(過去ログ140)
(過去ログ141)
(過去ログ142)
(過去ログ143)
(過去ログ144)
(過去ログ145)
(過去ログ146)
(過去ログ147)
(過去ログ148)
(過去ログ149)
(過去ログ150)
(過去ログ151)
(過去ログ152)
(過去ログ153)
(過去ログ154)
(過去ログ155)
(過去ログ156)
(過去ログ157)
(過去ログ158)
(過去ログ159)
(過去ログ160)
(過去ログ161)
(過去ログ162)
(過去ログ163)
(過去ログ164)
(過去ログ165)
(過去ログ166)
(過去ログ167)
(過去ログ168)
(過去ログ169)
(過去ログ170)
(過去ログ171)
(過去ログ172)
(過去ログ173)
(過去ログ174)
(過去ログ175)
(過去ログ176)
(過去ログ177)
(過去ログ178)
(過去ログ179)
強調表示
/
ON
(自動リンクOFF)
結果表示件数
/
20件
30件
40件
50件
100件
記事No検索
/
ON
大文字と小文字を区別する
No.68246 の関連記事表示
ヒット / 12件
(1-12 を表示)
<<
0
>>
■68246
Server.Transferによる遷移とAjaxイベント
□投稿者/ fumo -
(2013/10/03(Thu) 20:39:01)
分類:[ASP.NET (C#)]
【開発環境】
開発OS: Windows 7 SP1
開発.NET Framework: 4.5
Visual Studioのバージョン: 2012
開発言語: C#
使用ブラウザ:Internet Explorer 9
現在、Webフォームによるシステムの開発を行っているのですが、Server.Transferによって遷移した画面でUpdatePanelを利用したAjaxのイベントを実行すると、
その画面の2回目のAjaxイベント発生時に以下のエラーメッセージのエラーが発生します。
(エラーメッセージ ⇒ 0x800a139e - Microsoft JScript 実行時エラー: Sys.WebForms.PageRequestManagerServerErrorException: An unknown error occurred while processing the request on the server. The status code returned from the server was: 404)
ネットで調べると少しですが同様の現象が発生しているようです。それによると、Responce.Redirectによる遷移にすると解決するとあり、実際試すとエラーは発生しませんでした。
また、検証の結果、Server.Transferで遷移した画面で1度でも通常のポストバックが発生していると、以降はAjaxのイベントが発生してもエラーは発生しないことが判明しました。
ここで質問なのですが、
@Server.Transferによる画面遷移とAjaxのイベントの関連性について。
AServer.Transferによる画面遷移とAjaxのイベントを両立させる方法はないか。
以上の二つについてご教示いただければと思います。
@については今回の現象の原因が知りたい。
Aについては、画面間のデータの受け渡し等のことを考えて、できれば画面遷移はServer.Transferを利用したいと考えているため、Responce.Redirectによる遷移を利用したくない。
ということになります。
皆様お忙しいとは思いますが、よければご教示いただけると助かります。
親記事 /過去ログ116より /
関連記事表示
削除チェック/
■68247
Re[1]: Server.Transferによる遷移とAjaxイベント
□投稿者/ WebSurfer -
(2013/10/03(Thu) 21:28:31)
■
No68246
(fumo さん) に返信
> Aについては、画面間のデータの受け渡し等のことを考えて、できれば画面遷移はServer.Transferを利用したいと考えているため、Responce.Redirectによる遷移を利用したくない。
そのあたりの理由を詳しく書いてもらえると、お役に立てる回答ができるかもしれません。
記事No.68246 のレス /過去ログ116より /
関連記事表示
削除チェック/
■68257
Re[2]: Server.Transferによる遷移とAjaxイベント
□投稿者/ fumo -
(2013/10/04(Fri) 08:35:43)
■
No68247
(WebSurfer さん) に返信
返信が遅れまして申し訳ありません。
画面間のデータの受け渡しをするために、遷移後の画面からPreviousPageを利用して遷移前の画面から値を取得しています。
画面の項目が多くなるので、セッションやクエリストリングに一つずつ格納して…といった方式はとりたくないと考えております。
記事No.68246 のレス /過去ログ116より /
関連記事表示
削除チェック/
■68263
Re[3]: Server.Transferによる遷移とAjaxイベント
□投稿者/ WebSurfer -
(2013/10/04(Fri) 12:55:43)
■
No68257
(fumo さん) に返信
> ■
No68247
(WebSurfer さん) に返信
>
> 返信が遅れまして申し訳ありません。
>
> 画面間のデータの受け渡しをするために、遷移後の画面からPreviousPageを利用して遷移前の画面から値を取得しています。
> 画面の項目が多くなるので、セッションやクエリストリングに一つずつ格納して…といった方式はとりたくないと考えております。
以下のケース(UpdatePanel を配置したページで Server.Transfer を使ってい
る)とは違いますよね? このケースでも 404 エラーになるそうです。もし、
このケースであれば、Response.Redirect を使う以外に現実的な解決策はありま
せん。
No,
you cannot call Server.Transfer on an ASP.NET AJAX enabled page
http://msmvps.com/blogs/luisabreu/archive/2007/10/10/no-you-cannot-call-server-transfer-on-an-asp-net-ajax-enabled-page.aspx
上記のケースとは違って、遷移先のページで UpdatePanel を使っているという
ことですか? 例えば、以下のページの図16.2 で、UpdatePanel を使っている
のは sampleB.aspx で、そのページを構築する際 asmpleA.aspx のデータを使用
しているということですか?
そうだとすると、最初に sampleB.aspx から html ソースがブラウザに送信され
た後で、ブラウザが sampleB.aspx に非同期要求を出した時には sampleA.aspx
はサーバーのメモリには存在しないので、sampleB.aspx(これは非同期要求を受
けると再度サーバーのメモリにロードされます)で、asmpleA.aspx のデータを取
得できないのでエラーになるということではないかと思います(想像です)。
ただ、一度通常のポストバック(同期要求と理解)が発生するとエラーが出ないの
はつじつまが合わないですが。
セッションやクエリ文字列を使わない理由は、単にめんどくさいからということ
のようですが、その程度の理由しかないのであれば、普通にセッション等に前画
面のデータを保持し Response.Redirect で遷移することをお勧めします。
ASP.NET Web Forms アプリでの画面遷移は Response.Redirect を使うのが基本で
す。Server.Transfer をつかうのはよほどの理由(例えば、GetLastError メソッ
ドを利用してのエラー処置とか、SEO 対策とか)がない限り止めた方が無難です。
Web アプリケーション開発では、Post/Redirect/Get (PRG) パターンを使うこと
が基本ということもありますし。
Post/Redirect/Get
http://en.wikipedia.org/wiki/Post/Redirect/Get
記事No.68246 のレス /過去ログ116より /
関連記事表示
削除チェック/
■68264
Re[4]: Server.Transferによる遷移とAjaxイベント
□投稿者/ WebSurfer -
(2013/10/04(Fri) 12:58:55)
■
No68257
(fumo さん) に返信
> 上記のケースとは違って、遷移先のページで UpdatePanel を使っているという
> ことですか? 例えば、以下のページの図16.2 で、UpdatePanel を使っている
> のは sampleB.aspx で、そのページを構築する際 asmpleA.aspx のデータを使用
> しているということですか?
「以下のページの図16.2」と書きましたが、そのページの URL を書くのを忘れて
ました。以下の通りです。
第16回 ASP.NETにおけるページの遷移 (1/4)
http://www.atmarkit.co.jp/ait/articles/0304/05/news003.html
記事No.68246 のレス /過去ログ116より /
関連記事表示
削除チェック/
■68269
Re[4]: Server.Transferによる遷移とAjaxイベント
□投稿者/ fumo -
(2013/10/04(Fri) 17:07:56)
■
No68263
(WebSurfer さん) に返信
>
> 以下のケース(UpdatePanel を配置したページで Server.Transfer を使ってい
> る)とは違いますよね? このケースでも 404 エラーになるそうです。もし、
> このケースであれば、Response.Redirect を使う以外に現実的な解決策はありま
> せん。
>
>
No,
you cannot call Server.Transfer on an ASP.NET AJAX enabled page
>
http://msmvps.com/blogs/luisabreu/archive/2007/10/10/no-you-cannot-call-server-transfer-on-an-asp-net-ajax-enabled-page.aspx
>
>
> 上記のケースとは違って、遷移先のページで UpdatePanel を使っているという
> ことですか? 例えば、以下のページの図16.2 で、UpdatePanel を使っている
> のは sampleB.aspx で、そのページを構築する際 asmpleA.aspx のデータを使用
> しているということですか?
>
はい、おおむねその通りですが、sampleB.aspxでsampleA.aspxの値を使用しなくても(Previous Pageの取得等もしていない)
同様のエラーは発生します。
> そうだとすると、最初に sampleB.aspx から html ソースがブラウザに送信され
> た後で、ブラウザが sampleB.aspx に非同期要求を出した時には sampleA.aspx
> はサーバーのメモリには存在しないので、sampleB.aspx(これは非同期要求を受
> けると再度サーバーのメモリにロードされます)で、asmpleA.aspx のデータを取
> 得できないのでエラーになるということではないかと思います(想像です)。
>
> ただ、一度通常のポストバック(同期要求と理解)が発生するとエラーが出ないの
> はつじつまが合わないですが。
>
通常のポストバックでエラーが解消されるのが、確かに一番意味が不明な部分ではありますね。
>
> セッションやクエリ文字列を使わない理由は、単にめんどくさいからということ
> のようですが、その程度の理由しかないのであれば、普通にセッション等に前画
> 面のデータを保持し Response.Redirect で遷移することをお勧めします。
>
> ASP.NET Web Forms アプリでの画面遷移は Response.Redirect を使うのが基本で
> す。Server.Transfer をつかうのはよほどの理由(例えば、GetLastError メソッ
> ドを利用してのエラー処置とか、SEO 対策とか)がない限り止めた方が無難です。
>
> Web アプリケーション開発では、Post/Redirect/Get (PRG) パターンを使うこと
> が基本ということもありますし。
>
> Post/Redirect/Get
>
http://en.wikipedia.org/wiki/Post/Redirect/Get
すみません、それ以外にも理由がありまして、
@ブラウザの「戻る」機能を使わせないために、画面遷移ごとにセッション変数へPreviousPageのオブジェクトを画面遷移履歴として保存しておき、画面に実装したボタン
を押下した際に、セッション変数の最新履歴からPathを取得してServer.Transferでひとつ前の画面に遷移、さらに最新履歴から各コントロールを取得して表示されていた
値の復元を行うという機能を実装しているため、PreviousPageを利用したい。
(戻るボタンが利用できると、常に最新のデータを表示しておきたい画面で、キャッシュから復元された古い情報が表示されてしまう可能性がある。)
APostBackUrlを指定した遷移だと、「データ入力画面で保存ボタン押下⇒データ保存(処理)⇒トップ画面に戻る(遷移)」といった処理を一つのイベントで実装できない。
(遷移元画面の処理実行前にPostBackUrlのリンク先に遷移してしまう)
上記2つの理由があるため、Server.Transferで遷移を行いたいと考えております。
(情報が小出しになってしまい申し訳ありません)
Server.TransferとAjaxはうまく使えないものなのでしょうか…。
記事No.68246 のレス /過去ログ116より /
関連記事表示
削除チェック/
■68271
Re[5]: Server.Transferによる遷移とAjaxイベント
□投稿者/ WebSurfer -
(2013/10/04(Fri) 18:50:27)
■
No68269
(fumo さん) に返信
> @ブラウザの「戻る」機能を使わせないために、画面遷移ごとにセッション変数へPreviousPageのオブジェクトを画面遷移履歴として保存しておき、画面に実装したボタン
> を押下した際に、セッション変数の最新履歴からPathを取得してServer.Transferでひとつ前の画面に遷移、さらに最新履歴から各コントロールを取得して表示されていた
> 値の復元を行うという機能を実装しているため、PreviousPageを利用したい。
> (戻るボタンが利用できると、常に最新のデータを表示しておきたい画面で、キャッシュから復元された古い情報が表示されてしまう可能性がある。)
今頃になって話がぜんぜん違ってきているような気がします。それを最初に書
いておいてもらえたらと思います。
想定外(少なくとも自分には)のことをして、予期しないトラブルが起こって
いるという感じで、このまま進めるということであれば自分には解決策はわか
りません。
お役に立てずすみませんが、他の方の回答をお待ちください。
記事No.68246 のレス /過去ログ116より /
関連記事表示
削除チェック/
■68272
Re[6]: Server.Transferによる遷移とAjaxイベント
□投稿者/ fumo -
(2013/10/04(Fri) 19:05:45)
■
No68271
(WebSurfer さん) に返信
> ■
No68269
(fumo さん) に返信
>>@ブラウザの「戻る」機能を使わせないために、画面遷移ごとにセッション変数へPreviousPageのオブジェクトを画面遷移履歴として保存しておき、画面に実装したボタン
>>を押下した際に、セッション変数の最新履歴からPathを取得してServer.Transferでひとつ前の画面に遷移、さらに最新履歴から各コントロールを取得して表示されていた
>>値の復元を行うという機能を実装しているため、PreviousPageを利用したい。
>>(戻るボタンが利用できると、常に最新のデータを表示しておきたい画面で、キャッシュから復元された古い情報が表示されてしまう可能性がある。)
>
> 今頃になって話がぜんぜん違ってきているような気がします。それを最初に書
> いておいてもらえたらと思います。
>
> 想定外(少なくとも自分には)のことをして、予期しないトラブルが起こって
> いるという感じで、このまま進めるということであれば自分には解決策はわか
> りません。
>
> お役に立てずすみませんが、他の方の回答をお待ちください。
>
質問が下手で申し訳ないです。
エラーの原因等、参考になります。回答、ありがとうございました。
記事No.68246 のレス /過去ログ116より /
関連記事表示
削除チェック/
■68262
Re[1]: Server.Transferによる遷移とAjaxイベント
□投稿者/ PANG2 -
(2013/10/04(Fri) 12:27:03)
■
No68246
(fumo さん) に返信
> @Server.Transferによる画面遷移とAjaxのイベントの関連性について。
AJAXクライアントが Server.Transfer前のURLを基準に通信するのでは?
> AServer.Transferによる画面遷移とAjaxのイベントを両立させる方法はないか。
クロスページ・ポストバック
http://www.atmarkit.co.jp/fdotnet/dotnettips/409asppostback2/asppostback2.html
参考
http://msmvps.com/blogs/luisabreu/archive/2007/10/10/no-you-cannot-call-server-transfer-on-an-asp-net-ajax-enabled-page.aspx
記事No.68246 のレス /過去ログ116より /
関連記事表示
削除チェック/
■68267
Re[2]: Server.Transferによる遷移とAjaxイベント
□投稿者/ fumo -
(2013/10/04(Fri) 14:37:14)
■
No68262
(PANG2 さん) に返信
> ■
No68246
(fumo さん) に返信
>>@Server.Transferによる画面遷移とAjaxのイベントの関連性について。
>
> AJAXクライアントが Server.Transfer前のURLを基準に通信するのでは?
>
>>AServer.Transferによる画面遷移とAjaxのイベントを両立させる方法はないか。
>
> クロスページ・ポストバック
>
http://www.atmarkit.co.jp/fdotnet/dotnettips/409asppostback2/asppostback2.html
>
>
> 参考
>
http://msmvps.com/blogs/luisabreu/archive/2007/10/10/no-you-cannot-call-server-transfer-on-an-asp-net-ajax-enabled-page.aspx
>
>
回答ありがとうございます。
原因については、そう言われると理解できるようなできないような…といった感じで、自分の中でもう少し理解できるまで考えてみようと思います。
参考のサイトも見させていただきました。
翻訳サイトにかけつつの解釈ですが、参考のサイトの内容は、UpdatePanelを配置したページでServer.Transferを使うとエラーになるということでしょうか。
自分が今問題になっているのはServer.Transferで遷移した先の画面で、UpdatePanelを利用したAjaxイベントが発生した場合ですので、参考サイトとは違うと感じました。
それは自分の認識が間違っているでしょうか、そうでしたら申し訳ありませんが補足説明いただけると助かります。
記事No.68246 のレス /過去ログ116より /
関連記事表示
削除チェック/
■68273
Re[3]: Server.Transferによる遷移とAjaxイベント
□投稿者/ fumo -
(2013/10/04(Fri) 19:12:45)
自分の質問を整理したいと思います。
【開発環境】
開発OS: Windows 7 SP1
開発.NET Framework: 4.5
Visual Studioのバージョン: 2012
開発言語: C#
使用ブラウザ:Internet Explorer 9
現在、Webフォームによるシステムの開発を行っているのですが、Server.Transferによって遷移した画面でUpdatePanelを利用したAjaxのイベントを実行すると、
その画面の2回目のAjaxイベント発生時に以下のエラーメッセージのエラーが発生します。
(エラーメッセージ ⇒ 0x800a139e - Microsoft JScript 実行時エラー: Sys.WebForms.PageRequestManagerServerErrorException: An unknown error occurred while processing the request on the server. The status code returned from the server was: 404)
ネットで調べると少しですが同様の現象が発生しているようです。それによると、Responce.Redirectによる遷移にすると解決するとあり、実際試すとエラーは発生しませんでした。
また、検証の結果、Server.Transferで遷移した画面で1度でも通常のポストバックが発生していると、以降はAjaxのイベントが発生してもエラーは発生しないことが判明しました。
ここで質問なのですが、
@Server.Transferによる画面遷移とAjaxのイベントの関連性について。
AServer.Transferによる画面遷移とAjaxのイベントを両立させる方法はないか。
以上の二つについてご教示いただければと思います。
@については今回の現象の原因が知りたい。
Aについては、以下の3つの理由により画面遷移はServer.Transferを利用したいと考えているため、Responce.Redirectによる遷移を利用したくない。
1.受け渡す値が多いため、それらをすべてセッションやクエリストリング等でやり取りすると、ヒューマンエラーの発生確率が上がってしまうと考えられる。
2.ブラウザの「戻る」機能を使わせないために、画面遷移ごとにセッション変数へPreviousPageのオブジェクトを画面遷移履歴として保存しておき、画面に実装したボタン
を押下した際に、セッション変数の最新履歴からPathを取得してServer.Transferでひとつ前の画面に遷移、さらに最新履歴から各コントロールを取得して表示されていた
値の復元を行うという機能を実装しているため、PreviousPageを利用したい。
(戻るボタンが利用できると、常に最新のデータを表示しておきたい画面で、キャッシュから復元された古い情報が表示されてしまう可能性がある。)
3.PostBackUrlを指定した遷移だと、「データ入力画面で保存ボタン押下⇒データ保存(処理)⇒トップ画面に戻る(遷移)」といった処理を一つのイベントで実装できない。
(遷移元画面の処理実行前にPostBackUrlのリンク先に遷移してしまう)
以上のことについて、なにかご教示いただければ助かります。
記事No.68246 のレス /過去ログ116より /
関連記事表示
削除チェック/
■68285
Re[4]: Server.Transferによる遷移とAjaxイベント
□投稿者/ fumo -
(2013/10/07(Mon) 15:57:43)
自己レスです。
解決策が見つからないため、Responce.Redirectで遷移する方式に切り替える方向で作業を進めることになりました。
回答いただいたWebSurfer 様、PANG2 様、ありがとうございました。
実際には解決できたわけではありませんが、「別の方針をとる」という方向性が定まったため、解決済みとさせていただきます。
記事No.68246 のレス / END /過去ログ116より /
関連記事表示
削除チェック/
<<
0
>>
パスワード/
-
Child Tree
-