答えて
ASP.NETはステートレスであるため、ポストバックからポストバックに状態を保持しないためです。ユーザーをビューステート、セッション、またはアプリケーションに保存して、ポストバック時にポストバック時にそれを確認します。
#region UserName
public string UserName
{
get
{
if (this.ViewState["UserName"] == null)
return string.Empty;
return (string)this.ViewState["UserName"];
}
set { this.ViewState["UserName"] = value; }
}
#endregion
あなたも、ボタンのクリックイベントのような「シンプル」なもののために、任意のポストバックを行うたびに、あなたはページクラスの新しいインスタンスで作業しています。これはASP.Netです。101.
新しいページにリダイレクトするか、新しいクエリ文字列を含むページを読み込むと、それはポストバックではありません。クエリ文字列を含むページ上でボタンクリックイベントを処理すると、それはポストバックであり、クエリ文字列はポストバックhttp要求とともに送信されます。いずれにせよ、それはまだページクラスの新しいインスタンスです。 –
保護されたものと個人的なものとの関連について私の答えは見つかりませんでした。 – anonymous
usernameフィールドをprivateまたはprotectedとして宣言しても、このような状況には関係ありません。 protected/privateだけのベアリングは、クラス外の変数や継承されたメンバーへのアクセシビリティです。
これはライフサイクルの問題と思われます。
初めてこのページに移動すると、要求にクエリ文字列が設定されている場合、ユーザー名には値が設定されます。したがって、 "/TeacherControlPanel.aspx"には値のないユーザー名がありますが、 "/TeacherControlPanel.aspx?username=SomeUserName"になります。このような場合、フィールドusernameは、設定されている場合にのみ値を持ちます。クエリーストリングが設定されていない場合、ページがボタンのクリックイベントを処理すると、負荷が発生します。クエリ文字列が設定されていない場合、ユーザー名はnullになります。つまり、clickイベントにリダイレクト文字列を追加する必要はありません。
あなたのアプリケーションでは、どのナビゲーションパスがTeacherControlPanel.aspxにアクセスするのですか?
さらに、プライベートフィールドは表示されませんが、保護されたフィールドはページ(TeacherControlPanel.aspx、<% %>ステートメント)に表示されます。 – Kobi
- 1. Immutable.Map.deleteAll()は、次のコードを考えてみましょう
- 2. は、次のJavaコードを考えてみましょうDouble.MaxValue
- 3. 次のコードを考えてみましょう
- 4. はのは、次のことを考えてみましょう
- 5. 座標はフィットを考えてみましょう次のコードを
- 6. 私はtests.pyで、次のテストクラス考えてみましょう外
- 7. 次のクラスを考えてみましょうのpython
- 8. R DT - 次の例を考えてみましょう
- 9. 次のサンプル・データ・フレームを考えてみましょう
- 10. Appiumインスペクタ1.2.6コードの下に考えてみましょう
- 11. エラー私のコードを考えてみましょうmy_controller
- 12. Scalazストリームブラケットは、このコードを考えてみましょ早期
- 13. はどのように考えてみましょう下旬
- 14. PUTは、次の休憩コントローラを考えてみましょう変数
- 15. OnErrorReturnは考えてみましょう。この例をflatMap
- 16. Pylintは、このコードスニペットを考えてみましょう
- 17. を考えてみましょう次のコードを引数の最大数の関数は、テンプレートメタプログラミング
- 18. 接続信号が、これは、コードを考えてみましょうJS
- 19. セレクタは、考えてみましょうボタンの
- 20. 私は考えてみましょうインタフェースメソッド呼び出し
- 21. 機能を考えてみましょう空のラムダ式
- 22. のClojure:次の関数呼び出しを考えてみましょコレクション
- 23. はどのように考えてみましょう。このCスニペットホテルトップ
- 24. は、次のコードを考えてみてください
- 25. 私はフィーチャーファイルの下に持って考えてみましょうキュウリ
- 26. ブーストMPL考えてみましょうjoint_view
- 27. PowerShellは:ファイルを考えてみましょファイル
- 28. は、簡単な例を考えてみましょクラステンプレート
- 29. は安全に考えてみましょうLPTSTR割り当て
- 30. NHibernateは - ミキシングサブクエリと熱心左は、このデータベースモデルを考えてみましょう
コードは書かれているように機能していると言っていますが、ユーザー名をプライベート変数に変更すると失敗しますか? –
nullまたはstring.Emptyに初期化されていますか? – Martin
@Martin、それはnullです。 – anonymous