問題タブ [page-lifecycle]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net - System.web.ui.page の代替
ASP.Net アプリケーションを使用していますが、プロファイラーを使用していて、ページが実行される前にかなりの量の処理が行われていることに気付きました。私のアプリケーションでは、viewstate や asp.Net セッションを使用していません。おそらく、asp.net ページ ライフサイクルを使用した結果生じるオーバーヘッドのほとんどは必要ありません。簡単に継承できる他のクラスがあり、すべてのAsp.Netのものを切り取って、ハンドルを自分でページに書き込めるようにしますか?
ASP.Net MVC は、古い asp.net ライフサイクルを使用せず、ページの処理方法が異なるため、ページの読み込みを大幅に削減できると聞いたことがあります。私のWebページに他のクラスを継承させて、このようなものを利用するだけの簡単な方法はありますか。可能であれば、ASP.Net 2.0 で動作するソリューションが欲しいです。
asp.net - ユーザーコントロールからページイベントを処理するにはどうすればよいですか? (VB.net)
ユーザーコントロールのライフサイクルの「プリロード」段階でコードを実行したいと思います。ただし、プリロード イベントは Page オブジェクトでのみ使用できます。そこで、次のメソッドをユーザー コントロールに追加しました。
ただし、コンパイル エラーが発生することはわかっています。
Page プロパティは UserControl から継承されるため、これを簡単に行う方法がわかりません。
どんな助けもありがたく受け取った!
asp.net - QueryString の最良の代替手段は何ですか
QueryStrings を使用する際の脆弱性と攻撃の可能性について、多くの声を聞きました。それとは別に、昨日、エラーが私を非常にいらいらさせたので、QueryStringsの使用をやめることにしました。私は次のようなものを渡していました:
私がしようとしました
リダイレクトページで「タイプ」を3として出力し、ターゲットページで試してみると、3,0が出力されました....これは簡単に処理できることはわかっていますが、なぜですか? つまり、3 を渡して、次のページの読み込みで 3.0 をチェックして、それに応じてアクションを実行する必要があるのはなぜですか???
では、何を使用すればよいでしょうか。変数、パラメータなどを次のページに渡す最も安全な方法は何ですか?
asp.net - ViewState を使用する Asp.net BasePage プロパティがポストバック時にクリアされる
ここに私のセットアップの基本があります:
System.Web.UI.Page から継承する BasePage クラスがあります。BasePage には 2 つのプロパティが実装されており、その get/set が ViewState コレクション内の 2 つの異なる項目から実行されるようになっています (例: BasePage の this.ViewState["Year"])。
BasePage から継承する別のクラスがあります。それを SpecificBasePage と呼びましょう。
最後に、SpecificBasePage を継承する aspx ページがあります。
ブレーク ポイントを追加し、コードを何度も実行したところ、最初のページ ロードで両方のビュー ステート プロパティに値が割り当てられ、最初のページ ロードのライフ サイクル全体で値が保持されることがわかりました。
ただし、ページがポストバックされると、Page_Load イベントおよびその他のイベント ハンドラー (ViewState をロードする必要がある場合) で、両方のプロパティが null を返します。this.ViewState.Count を調べると、コレクションにオブジェクトがないことがわかります。
ViewState に影響を与え、この動作を引き起こす可能性のあるどこかで私が行っていることを誰かが考えることができますか?
-- さらに、コードの一部に分離しました。初期ロード時に、OnInit でビューステート プロパティの値を指定します。これを OnLoad に移動すると、ポスト バック全体で値が保持されることがわかりました。追加されたビュー ステートの値は最初のページのライフサイクル全体で保持されますが、ポスト バックで破棄されますか?
c# - ページが終了したときにアクションを実行する
私は ASP.NET(2.0 C#) Web アプリケーションを使用しており、ユーザーが別のページに移動したり、アプリケーションを離れたりしたときにアクションを実行する方法を知りたいと思っていました。
page_load
これはページを終了するためのものを除いて、ユーザーがページに入ったときのような方法はありますか?
ありがとう
.net - Asp.netの「グローバル」変数
ASP.NETでページを作成していますが、ポストバックの初期化のサイクルに続いて問題が発生しています。
私は次のものを持っています(何かに似ています):
そして何が起こっているのかというと、私のコードは「passedString」をうまく拾い上げますが、何らかの理由で、ポストバック時に、デフォルトの割り当てをPage_Initコードに入れても、デフォルト値にリセットされます...何が起こっているのだろうか。
何か助けはありますか?
c# - ASP.net ページの WCF クライアント
ASP.net ページから WCF サービスを使用するための適切なパターンをアドバイスできる人はいますか? Client(:ServiceModel.ClientBase) の有効期間が適切に制御されていない場合、PipeException がスローされるようです。現在、これは Page クラスのフィールドとして存在しますが、クリーンアップ (.Close メソッド) されることなく、ページ要求ごとに再インスタンス化されています。
この質問は「ASP.net ページで限られたリソースを管理する」と言い換えることができ、おそらく ASP.net ページのライフサイクルに関連していると思われます。私は ASP.net を初めて使用するので、これについての私の理解は少し薄いです。
ティア。
編集:いくつかのコード(それほど多くはありません!)
2回目の編集:次のほうがよいでしょうか?
.net - .NETページサイクルでイベントが十分に早く発生しない
多くのUserControlが含まれているページ(フォーム)があり、すべてを保存するための1つのボタンを使用しようとしています。UserControlsは実際にはネストされているため、すべてを1つのイベントにラップしたり、単一のイベントで保存イベントのカスケードをトリガーしたりするのではなく、各UCにそれ自体を保存する必要があることを通知したいと思いました。
私の計画は静的クラスを使用することでした(コードのこの回答の小道具):
理想的には、MasterPageのボタンでRequestScopedFormData.FormIsSaving = trueに設定し、.NETがページとそのUserControlsを構築するときに、自分で保存を実行することを認識します。
私が抱えている問題は、ページのライフサイクルの早い段階でUserControlsを保存するためのイベントを発生させることができないことです。保存コードをPreRenderイベントに移動し、保存ImageButtonを(MasterPageではなく)ページ自体に移動しても、UC保存チェックの前にFormIsSavingをtrueに設定できません。
これは次のように発生します。
- ページPage_Load
- MasterPage Page_Load
- UC Page_LoadsとPreRenders(これらは混合されており、他をロードする前に一部をプリレンダリングします)
- MasterPage SaveButton_Clickイベント(これはクラス変数を設定する場所です)
- MasterPage PreRender
- ページPreRender
そのため、残念ながら、SaveButton_ClickメソッドはUCがロードされた後に発生するため、UCが保存されることはありません。
asp.net - ASP.NET 2.0 PageComplete イベントのトラブルとファイルのダウンロード
.aspx ページ全体が表示された後にアクションを実行しようとしています。「アクション」は、Response オブジェクトを使用してユーザーにファイルを送信する関数です。
詳細情報:
ページ上のリンクの動作をサイドバーから再現しようとしています。IE エクスポート アクションのメイン ページにリンクがあり、ユーザーがクリックする前にページが既に表示されているため、正常に動作します。しかし、ユーザーがサイドバーにいるときにリンクをクリックすると、ユーザーはこのメイン ページに戻り、表示後にファイルを送信する必要があります。
私はいくつかの調査を行い、PageComplete イベントを使用するのがこれに適していると考えたので、イベント ハンドラーを作成し、PageComplete 内にエクスポート コード (サイドバーからロードされたときにクエリ文字列からキーを外します) への呼び出しを配置しました。イベントハンドラ。しかし、動作はまったく同じです。ブラウザのダウンロード ボックスが表示され、その前後にページが読み込まれることはありません。
ここで何をしているのかを理解するのに役立つ場合は、リストをユーザーに送信するために使用されるコードのスニペットを示します。
このロジックをいじるよりも、ページイベントを使用してページをロードする方法をお勧めします。ただし、ファイルを送信するクリーンで簡単な方法があり、ページをロードしてからファイルを送信できる場合は、それも問題ありません。
PageComplete 以外に使用できる別の Page イベントはありますか、それとも何か不足している可能性はありますか?
編集:冗長について申し訳ありません。HTTP リクエストの動作を変更することはできないことを認識しています。多かれ少なかれ同じ結果を達成する受け入れ可能なソリューションを探しているだけです。数秒後にページを強制的に更新する方法のようです(したがって、ファイルダウンロードコードが実行される前にページが読み込まれるようにします)-最初の答えとしてこれを行う方法を探しています提案 - ダウンロードを更新します。(待たずに更新する方法があれば、遅らせる必要もありません)
このコードが機能しないのはなぜですか?
本来の動作: ページの読み込みが完了したら、Response.Redirect を実行し、別のクエリ文字列で自分自身を再読み込みします。再び Page LoadComplete イベントに到達すると、2 回目にファイルを書き出す関数がトリガーされます。
実際の動作: どうやら同じ問題を 2 回繰り返します... 同じ問題に戻ります。ページの読み込み後にアクションを実行する方法、またはページの読み込みが完全に終了するまで待ってから更新をトリガーして、アクション?ユーザーが何かをクリックせずに、ASP.NET が単独で何かを行う方法はありませんか?
その場合は、2 秒後に自動更新することもできますが、その方法がわかりません。