2012-11-29 20 views
3

他们都看在网页上视觉上相似,但他们每个人的HTML是相当不同:MVC4中的Html.TextBox和Html.Editor有什么区别?

<input id="TEST" name="TEST" type="text" value="this one's filled in, but editor isn't"> 
<input class="text-box single-line" id="TEST" name="TEST" type="text" value=""> 

docsReturns an HTML input element for each property in the object that is represented by the expression.为Html.Editor

虽然Html.TextBoxReturns a text input element by using the specified HTML helper and the name of the form field.

这是否意味着你将一个模型的字符串名称传递给Html.Editor,然后它会为它的每个属性创建一个文本输入,而Html.TextBox只是一个愚蠢的文本输入而没有其他任何东西后面的场景?

回答

7

HTML.Textbox:

通过使用指定的HTML辅助细胞和形式字段的名称,返回文本输入元件。

HTML.Editor:

此方法生成取决于所呈现的属性的数据类型不同的HTML标记,并根据该属性是否被标有某些属性。

  • 如果将属性键入为基本类型(整数,字符串等),则该方法为文本框呈现HTML输入元素。

  • 如果某个属性标记了数据类型属性或UIHintAttribute属性,则该属性将指定为该属性生成的标记。例如,如果该属性标有MultilineText属性,则该方法会为多行文本框生成标记。

  • 如果对象包含多个属性,则对于每个属性,该方法将生成一个字符串,该字符串由属性名称的标记和用于编辑属性值的输入元素组成。
  • 如果该属性是一个布尔值,那么它将加载一个复选框。