質問: ### 疑問 C#コードから自分のページへポストバックを発生させる方法が気になります。 javascriptから・・・とかポストバックさせない方法は・・・みたいな 情報はweb上にあるのですがただポストバックする関数みたいなものの情報は引っかからなかったので疑問に思いました。 (自分のページにredirectするしかない?) ご存じのかたよろしくお願いします。 ### 補足情報(言語/FW/ツール等のバージョンなど) ドットネットフレームワーク4.5.2 C#
回答: > > C#コードから自分のページへポストバックを発生させる方法が気になります。 > > > 質問者さんの言う「ポストバック」は ASP.NET Web Forms アプリで一般的に使われている用語の意味でいいのですよね? であれば、そういう方法はありません。 サーバー側で起こっていることとクライアント側で起こっていることを区別して考えましょう。「ポストバックを発生させる」というのはあくまでクライアント側での話です。 C# のコードはサーバー側で動いているので、「ポストバックを発生させる」なんてことはできません。 もう少し詳しく説明すると・・・ ASP.NET がレンダリングする html ソースの form 要素を見てください。例えば、今ブラウザに表示されているページがルートの Default.aspx だとすると、以下のようになっているはずです。method 属性と action 属性に注目してください。 ``` ``` 上記ような設定になっているので、ボタンをクリックするとか JavaScript で form を submit すると、同じページ(Default.aspx)に form が POST 送信される、即ち「ポストバック」されるということです。 そこのところは、サーバー側で動く C# のコードでは何ともなりません。 > > 自分のページにredirectするしかない? > > > たぶん Response.Redirect("URL") のことを言っているのだと思いますが、それは「ポストバック」とは関係ないです。 ブラウザは指定された URL を GET 要求するだけです。