Html.Label和Html.Display有什么区别?

时间:2011-02-28 04:35:43

标签: asp.net-mvc asp.net-mvc-2 html-helper

Html.LabelHtml.Display之间的区别是什么?

3 个答案:

答案 0 :(得分:15)

Html.Label()呈现可用于模型实体的attrubute的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

答案 1 :(得分:3)

Label

返回HTML标签元素以及由指定表达式表示的属性的属性名称。

Display

返回由字符串表达式表示的对象中每个属性的HTML标记。

答案 2 :(得分:0)

Html.Display 更具动态性,它根据正在呈现的属性的数据类型以及根据属性是否标记了某些属性来生成不同的HTML标记。该方法根据以下规则呈现标记:

如果属性类型为基本类型(整数,字符串等),则该方法呈现表示属性值的字符串。

如果使用数据类型属性注释属性,则该属性指定为该属性生成的标记。例如,如果属性标记有EmailAddress属性,则该方法将生成包含使用mailto协议配置的HTML锚点的标记,如以下示例所示:

<a href='mailto:joe@contoso.com'>joe@contoso.com</a>

如果对象包含多个属性,则对于每个属性,该方法都会生成一个字符串,该字符串由属性名称和属性值的标记组成。

Html.Label 只会生成像Male

这样的标签标签