它们在网页上看起来很相似,但它们各自的 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 say 为表达式表示的对象中的每个属性返回一个 HTML 输入元素。
for Html.Editor
同时 Html.TextBox says 使用指定的 HTML 帮助程序和表单字段的名称返回文本输入元素。
这是否意味着您将模型的字符串名称传递给 Html.Editor
,然后它将为其每个属性创建一个文本输入,而 Html.TextBox
只是一个愚蠢的文本输入,幕后没有其他东西吗?
最佳答案
HTML.文本框:
使用指定的 HTML 帮助器和表单字段的名称返回文本输入元素。
HTML.Editor:
此方法根据正在呈现的属性的数据类型以及属性是否标记有特定属性来生成不同的 HTML 标记。
如果该属性的类型为原始类型(整数、字符串等),则该方法会为文本框呈现 HTML 输入元素。
如果属性标有数据类型属性或 UIHintAttribute 属性,则该属性指定为该属性生成的标记。例如,如果使用 MultilineText 属性标记该属性,则该方法会为多行文本框生成标记。
- 如果对象包含多个属性,则该方法会为每个属性生成一个字符串,其中包含属性名称标记和用于编辑属性值的输入元素。
- 如果该属性是一个 bool 值,那么它将加载一个复选框。
关于c# - MVC4 中的 Html.TextBox 和 Html.Editor 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13631417/