MVC3为什么要使用html.editorfor

lea*_*... 5 razor asp.net-mvc-3

我正在看MVC3 razor示例,并看到html.editor被利用,并在此论坛上也被问了很多.为什么我不能使用html.textboxforpasswordfor?谢谢

Phi*_*rie 9

EditorFor的优势在于它将尝试呈现与数据类型相关联的编辑器.

例如:如果您设计自己的编辑器模板,它们将根据属性的类型或UIHint自动呈现

有用的编辑器模板可能是在属性的类型为a时生成日期选择器的模板DateTime.

还有一些其他场景,其中'智能'EditorFor将为属性生成'最佳'编辑器,例如,当它呈现<textarea> 标记属性时MultilineText

使用TextBoxFor和PasswordFor对于那些不需要"特殊编辑器"的情况非常适合.在设置HtmlAttributes时,它甚至可能简化您的生活.


Nir*_*ngh 6

在MVC和Razor中Html.TextboxFor和Html.EditorFor之间的参考差异清除了对此的疑问..

HtmlTextboxFor始终创建一个 textbox (<input type="text" ...).

当EditorFor查看类型和元信息时,可以呈现您提供的另一个控件或模板.

例如,对于DateTime属性,您可以创建使用jQuery DatePicker的模板.

如果您决定改变文本框的方式,就像将文本框包装在div中一样,您只需编写一个自定义编辑器模板(~/Views/Shared/EditorTemplates/string.cshtml),应用程序中的所有文本框都将自动受益于此更改,而如果您有硬编码Html.TextBoxFor,则会有到处修改它.