4

私が理解しているように、このVisibleプロパティは、コントロールの可視性を有効または無効にするのに役立ちます。

HiddenFieldしかし、ASP.NETのコントロールの場合、その用途は何ですか?

4

3 に答える 3

7

HiddenFieldのVisibleプロパティは、他のコントロールと同様に機能します。HiddenField コントロールのVisibleプロパティが に設定されている場合false、コントロールはページに表示されません。通常、HiddenField は<input type= "hidden"/>要素としてレンダリングされます。ただし、Visible でない場合、そのデータは代わりにページのビューステートに保持されます。

HiddenField が .Net 2.0 で導入された理由は、

  • ビューステート
  • セッション状態
  • クッキー

それらの場所が利用できないか望ましくない場合に、そのような非表示の状態情報を保存する場所として。Visible を false に設定すると、<input type= "hidden"/>. そのため、目的が少し損なわれますが、ユーザーが見る必要のないデータを入れるためのよく理解されたコンテナーです。

ドキュメント内の要素としてレンダリングされるか (Visible = true)、ビューステート エンコードされるか (Visible = false) は、それほど大きな違いはありません。

HiddenField の値は、visible プロパティが false の場合でも実際にはページと共に送信されるため、機密情報には使用しないでください。

ASP.NET HiddenField Visible プロパティ

wiki.ASP.NET の ASP.NET HiddenField

于 2013-03-07T18:36:16.323 に答える
5

継承のためVisible、プロパティはHiddenFieldオブジェクトにも存在します。

ドキュメントは、HiddenFieldクラスがプロパティを定義する基本Controlクラスから継承することを示していVisibleます。継承とは、基本クラスから継承するすべてのクラスが、基本クラスによって公開されたすべてのメソッドを自動的に取得または取得することを意味します。この場合、質問で指摘したように明らかに役に立たないにもかかわらず、基本クラスHiddenFieldVisibleプロパティを取得しています。Control

これは、言語にしばしば「ばかげたこと」があるからではなく (その主張の信憑性に異議を唱えるつもりはありませんが)、オブジェクト指向の設計により、基本クラスから継承された派生クラスからメソッドを削除することが不可能になっているためです。

于 2010-12-18T15:36:29.697 に答える
-4

おそらく、そこに残すよりも、そこに存在しないようにする方が難しいからです。

多くの言語にはばかげたことがあります。C および C++ の単項 + 演算子のように

于 2010-12-18T15:20:55.710 に答える