【问题标题】:MVC3 why use html.editorforMVC3 为什么使用 html.editorfor
【发布时间】:2012-05-02 14:48:20
【问题描述】:

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

【问题讨论】:

    标签: asp.net-mvc-3 razor


    【解决方案1】:

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

    例如:如果您设计自己的Editor Templates,它们将根据属性类型或UIHint自动呈现

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

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

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

    【讨论】:

    • 我要感谢这两个答案。这些清除了整个事情。我接受了这个答案,因为我已经指出了 2 个链接,很棒的信息。
    【解决方案2】:

    请参考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,你将不得不在任何地方修改它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      • 2012-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多