2016-04-15 1 views
2

まだ多くの研究の後、私は答えがありません。Server.Transferは機能しません

は、私が2013年

私のコードはかなり単純であるVS Webフォームアプリを使用します。この後

Server.Transfer("~/Success.aspx",true); 

Success.aspxのLoadイベントが実行されるのが、ブラウザで私だけのオリジナルメインフォームを参照してください。

私はそれで唯一のボタンで任意の空のWebフォームを作成したが、次のコード

Server.Transfer("~/WebForm2.aspx",true); 

を実行した後、まだ私はMainForm.aspx、(WebForm2のPage_Loadイベントハンドラが実行されます)

==を見ます============================

IrishGrifginのコメントごとの更新。

私のコードには本当にaJaxがあります。私はAjaxを使用するUpdatePanelsを持っています。これはserver.Transferの問題ですが、どうすればこの問題を解決できますか?

+1

これはAJAX対応ページで呼び出していますか? – IrishChieftain

+0

私はそうは思わない。これをどうすれば確認できますか? –

+2

解決策を見つけようとしません。他の方法でページをデザインすることをお勧めします。 Server.Transferは素晴らしいですが、実際に何ができるのか理解できない場合は避けてください。そして、ほとんどの場合、複雑なページを扱うことはできません。ポストバックのいくつかを行うことはできません。シンプルで、他の方法を見つける - Server.Transferは動作しますが、何が期待どおりではありません... – Aristos

答えて

1

最後に解決策が見つかりました。助けてくれてありがとう(私にアイデアをくれた人は+1)。

CS:Server.Transfer("~/Success.aspx",false);

HTML:だからここ

は私のコードだっ述べたように

<div id="submit">     
        <asp:Button ID="btnSubmit" runat="server" Text="Submit" OnClick="btnSubmit_Click" UseSubmitBehavior="False" />     

</div> 

ボタンは、更新パネルの中にあった提出してください。私たちは、次のコードを使用する必要がある。この場合 :

<Triggers> 
     <asp:PostBackTrigger ControlID="btnSubmit" /> 
    </Triggers> 

このコードは、基本的には、送信ボタン同期(更新パネルの動作を上書きします)を実行します。

1

多くのコードを見ることなく、この問題を実際にデバッグするのは難しいです。代わりにResponse.Redirect関数を使用します。

Response.Redirect("~/Success.aspx"); 
+0

を試してみますが、その質問に対する回答ではありません。 – Aristos

+0

OPは質問しませんでした。彼はまた、ビジネスルールのためにResponse.Redirectを使用できないとは言及していませんでした(ビジネスルールの種類はわかりません)。 Response.Redirectは、通常、彼が要求していたものを処理します。また、最初の投稿で提供された情報が限られているため、dotctorも同様の回答を得ました。 –

+0

dotctorは答えを出す、あなたは他の質問で答える... – Aristos

2

Server.Transfer()がわからないと思います。

一時的にコードを2番目のページで実行するようにリダイレクトしますが、完了したら元のページに戻します。ブラウザが2番目のページからhtmlを取得(または参照)しない可能性があります。あなたは完全に2番目のページにコントロールを裏返しにしたい場合は

は、あなたがResponse.Redirectを使用する必要が

https://msdn.microsoft.com/en-us/library/ms525800(v=vs.90).aspxを参照してください。ビジネスルールでこれを使用できないと言われたら、ビジネスルールを再訪して変更することをお勧めします。