違いは何ですか Html.Label
およびHtml.Display
?
Html.Label()
は、モデルエンティティの属性に使用できるHTMLマークアップ_<label />
_をレンダリングします。
たとえば、
_<%= Html.Label("Full Name", Model.FullName) %>
_
レンダリングします
_ <label for="FullName">Full Name </label>
_
一方、Html.Display()
は、指定されたテンプレートに基づいてエンティティ全体のHTMLマークアップをレンダリングします。例えば。複数の属性を持つPersonエンティティがある場合は、Personのレンダリング方法に関するマークアップを使用してテンプレートを定義し、Html.Display()
はそのテンプレートを使用してビュー全体でPersonオブジェクトをレンダリングします。 Phil Haackは、ディスプレイテンプレートに優れた post を持っています。
Html.Displayはより動的であり、レンダリングされるプロパティのデータ型に応じて、およびプロパティが特定の属性でマークされているかどうかに応じて、異なるHTMLマークアップを生成します。このメソッドは、次のルールに従ってマークアップをレンダリングします。
プロパティがプリミティブ型(整数、文字列など)として入力されている場合、メソッドはプロパティ値を表す文字列をレンダリングします。
プロパティにデータ型属性の注釈が付けられている場合、属性はプロパティに対して生成されるマークアップを指定します。たとえば、プロパティがEmailAddress属性でマークされている場合、このメソッドは、次の例のように、mailtoプロトコルで構成されたHTMLアンカーを含むマークアップを生成します。
<a href='mailto:[email protected]'>[email protected]</a>
オブジェクトに複数のプロパティが含まれている場合、メソッドはプロパティごとに、プロパティ名とプロパティ値のマークアップで構成される文字列を生成します。
Html.Label男性のようなラベルタグを生成するだけです