5

我正在查看 MVC3 razor 示例并看到 html.editorfor 被使用,并且还在这个论坛上询问了很多。为什么我不能使用html.textboxforand passwordfor?谢谢

4

2 回答 2

9

EditorFor 的优点是它将尝试呈现与数据类型关联的编辑器。

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

一个有用的编辑器模板可能是在属性类型为DateTime.

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

对于不需要“特殊编辑器”的情况,使用 TextBoxFor 和 PasswordFor 非常合适。当不得不设置 HtmlAttributes 时,它甚至可以简化你的生活。

于 2012-04-21T03:50:26.417 回答
6

参考MVC 和 Razor 中 Html.TextboxFor 和 Html.EditorFor 之间的差异,以消除对此的疑问。

HtmlTextboxFor 总是创建一个textbox (<input type="text" ...).

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

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

如果您决定更改文本框的呈现方式,例如将它们包装在 div 中,您可以简单地编写自定义编辑器模板(~/Views/Shared/EditorTemplates/string.cshtml),应用程序中的所有文本框都将自动受益于此更改,而如果您进行了硬编码Html.TextBoxFor,您将拥有到处修改它。

于 2012-04-21T04:00:10.313 回答