MVC4中的Html.TextBox和Html.Editor有什么区别?

时间:2012-11-29 17:32:02

标签: c# asp.net-mvc asp.net-mvc-4

它们在网页上看起来都看起来很相似,但每个HTML的HTML都差别很大:

<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="">

docs为Html.Editor说明Returns an HTML input element for each property in the object that is represented by the expression.

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

这是否意味着您将模型的字符串名称传递给Html.Editor,然后它将为每个属性创建一个文本输入,而Html.TextBox'll只是一个没有任何内容的愚蠢文本输入在幕后呢?

1 个答案:

答案 0 :(得分:8)

<强> HTML.Textbox:

使用指定的HTML帮助程序和表单字段的名称返回文本输入元素。

<强> HTML.Editor:

此方法根据正在呈现的属性的数据类型以及是否使用某些属性标记属性来生成不同的HTML标记。

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

  • 如果属性标记有data-type属性或UIHintAttribute属性,则该属性指定为该属性生成的标记。例如,如果属性标有MultilineText属性,则该方法会为多行文本框生成标记。

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