5

カスタム ASP.NET コントロール開発の深みへの旅で、ASP.NET PostBack モデルと、それがコントロール開発にどのように影響するかについて明らかに頭を悩ませています。

ASP.NET ではコントロールに「有効期間」がないため、ページを読み込むたびに再初期化する必要があることを理解しています。オブジェクトの値/パラメーターを ViewState に永続化することで、これを克服します。

したがって、私が読んだ多くの記事では、ページにかなりのオーバーヘッドが追加される可能性があるため、PostBack を使用しないことをお勧めします。無効にする方法を探しているわけではありません。

私が探しているのは:

PostBack モデルを使用してコントロールを初期化する代わりに、どのような方法が必要ですか?

QueryString を使用できることはわかっていますが、これは非常に面倒で、明らかに信頼性が低いようです。

理想的には、別のアプローチのアーキテクチャ/設計の概要と、その長所/短所を教えてください..

どうもありがとう^_^

4

5 に答える 5

3

まあ、セッション状態はサーバー側のソリューションであり、ViewState を完全に回避したい場合に対処する独自の厄介な問題があります。実際には、カスタム コントロールで ViewState を使用することはすべて問題なく、良いことです。保存するものには気をつけてください。宣言されたコントロールの状態からのデルタのみを保存し、とにかくポストバックで取得するものは何も保存しないでください (たとえば、 DBコール)など

于 2008-09-16T19:10:58.180 に答える
1

PostBack モデルに代わるものを完全に探しているのであれば、ASP.NET MVC フレームワークを調査することをお勧めします。WebForms を縁石に蹴り飛ばして、すべての作業を MVC で行いたいと思っていますが、残念ながら、レガシー コードは tarbaby であり、書き換えが答えになることはほとんどないため、プラグインを先に進めます...

于 2008-10-25T06:06:14.713 に答える
1

値をどこかに保存する必要があるため、クエリ文字列と非表示のフォーム フィールドに制限されます。それを HTTP に関連付ける場合、基本的には GET または POST パラメーターのいずれかです。

Cookieを使用できると思いますが、それは本当に面倒です。

于 2008-09-16T19:12:06.633 に答える
1
  1. オブジェクトの状態をセッション コンテキストに保存します。これにより、状態を保持する負荷がクライアントからサーバーに移されます。これは、小規模なイントラネット アプリでは許容される場合があります。Capital-I インターネット上のサイトでは、これは機能しません。

  2. コントロールを AJAX 対応にします。この場合、状態の変更のみをポストバックする必要があります。ここでは、適切なフレームワークを選択することが重要です。公式の MS アプローチについては、http://www.asp.net/ajax/ajaxcontroltoolkit/samples/を参照してください。他にも多くの可能性があります。

于 2008-09-16T19:12:16.537 に答える
0

あなたはまだコントロールを多少誤解していると思います。コントロールには、ページに動的に追加するときに説明した問題のみがあります。コントロールを aspx コードで前もって宣言すると、コントロールはページと共にビルドされます。

于 2008-09-16T19:13:10.857 に答える