我正在查看 MVC3 razor 示例并看到 html.editorfor 被使用,并且还在这个论坛上询问了很多。为什么我不能使用html.textboxfor
and passwordfor
?谢谢
2 回答
EditorFor 的优点是它将尝试呈现与数据类型关联的编辑器。
例如:如果您设计自己的编辑器模板,它们将根据属性的类型或UIHint自动呈现
一个有用的编辑器模板可能是在属性类型为DateTime
.
还有一些其他场景,“智能”EditorFor 将为属性生成“最佳”编辑器,例如,当它使用<textarea>
标记属性时呈现MultilineText
对于不需要“特殊编辑器”的情况,使用 TextBoxFor 和 PasswordFor 非常合适。当不得不设置 HtmlAttributes 时,它甚至可以简化你的生活。
参考MVC 和 Razor 中 Html.TextboxFor 和 Html.EditorFor 之间的差异,以消除对此的疑问。
HtmlTextboxFor 总是创建一个
textbox (<input type="text" ...).
而 EditorFor 查看类型和元信息,并可以呈现您提供的另一个控件或模板。
例如,对于 DateTime 属性,您可以创建一个使用 jQuery DatePicker 的模板。
如果您决定更改文本框的呈现方式,例如将它们包装在 div 中,您可以简单地编写自定义编辑器模板(~/Views/Shared/EditorTemplates/string.cshtml)
,应用程序中的所有文本框都将自动受益于此更改,而如果您进行了硬编码Html.TextBoxFor
,您将拥有到处修改它。