【发布时间】:2012-05-02 14:48:20
【问题描述】:
我正在查看 MVC3 razor 示例并看到 html.editorfor 被使用,并且还在这个论坛上询问了很多。为什么我不能使用html.textboxfor 和passwordfor?谢谢
【问题讨论】:
标签: asp.net-mvc-3 razor
我正在查看 MVC3 razor 示例并看到 html.editorfor 被使用,并且还在这个论坛上询问了很多。为什么我不能使用html.textboxfor 和passwordfor?谢谢
【问题讨论】:
标签: asp.net-mvc-3 razor
EditorFor 的优点是它会尝试呈现与数据类型关联的编辑器。
例如:如果您设计自己的Editor Templates,它们将根据属性类型或UIHint自动呈现
一个有用的编辑器模板可能是在属性类型为DateTime 时生成日期选择器的模板。
还有一些其他场景,“智能”EditorFor 将为属性生成“最佳”编辑器,例如,当使用MultilineText 标记属性时呈现<textarea>
在不需要“特殊编辑器”的情况下,使用 TextBoxFor 和 PasswordFor 非常合适。当不得不设置 HtmlAttributes 时,它甚至可以简化你的生活。
【讨论】:
请参考Differences between Html.TextboxFor and Html.EditorFor in MVC and Razor 以清除对此的疑问..
HtmlTextboxFor 总是创建一个
textbox (<input type="text" ...).虽然 EditorFor 查看类型和元信息,但可以 呈现您提供的另一个控件或模板。
例如,对于 DateTime 属性,您可以创建一个模板 使用 jQuery DatePicker。
如果您决定更改文本框的呈现方式,例如将它们包装在 div 中,您可以简单地编写自定义编辑器模板(~/Views/Shared/EditorTemplates/string.cshtml),您应用程序中的所有文本框都将自动受益于此更改,而如果你已经硬编码了Html.TextBoxFor,你将不得不在任何地方修改它。
【讨论】: