私が理解しているように、このVisible
プロパティは、コントロールの可視性を有効または無効にするのに役立ちます。
HiddenField
しかし、ASP.NETのコントロールの場合、その用途は何ですか?
私が理解しているように、このVisible
プロパティは、コントロールの可視性を有効または無効にするのに役立ちます。
HiddenField
しかし、ASP.NETのコントロールの場合、その用途は何ですか?
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 の場合でも実際にはページと共に送信されるため、機密情報には使用しないでください。
継承のためVisible
、プロパティはHiddenField
オブジェクトにも存在します。
ドキュメントは、HiddenField
クラスがプロパティを定義する基本Control
クラスから継承することを示していVisible
ます。継承とは、基本クラスから継承するすべてのクラスが、基本クラスによって公開されたすべてのメソッドを自動的に取得または取得することを意味します。この場合、質問で指摘したように明らかに役に立たないにもかかわらず、基本クラスHiddenField
のVisible
プロパティを取得しています。Control
これは、言語にしばしば「ばかげたこと」があるからではなく (その主張の信憑性に異議を唱えるつもりはありませんが)、オブジェクト指向の設計により、基本クラスから継承された派生クラスからメソッドを削除することが不可能になっているためです。
おそらく、そこに残すよりも、そこに存在しないようにする方が難しいからです。
多くの言語にはばかげたことがあります。C および C++ の単項 + 演算子のように