C# 什么';MVC4中Html.TextBox和Html.Editor的区别是什么?

C# 什么';MVC4中Html.TextBox和Html.Editor的区别是什么?,c#,asp.net-mvc,asp.net-mvc-4,C#,Asp.net Mvc,Asp.net Mvc 4,它们在网页上的视觉效果都很相似,但它们各自的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=""> say为表达式表示的对象中的每个属性返回一个HTML输入元素。fo

它们在网页上的视觉效果都很相似,但它们各自的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="">

say
为表达式表示的对象中的每个属性返回一个HTML输入元素。
for HTML.Editor

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


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

Html.TextBox:

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

HTML.Editor:

此方法根据要呈现的属性的数据类型以及属性是否标记了某些属性,生成不同的HTML标记

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

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

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