asp.net-mvc-2 - 在 `Html.EditorFor` 上覆盖类

标签 asp.net-mvc-2 textinput class-attributes

默认情况下

<%: Html.EditorFor(m => m.ConfirmationHeadline) %>

输出是:
 <input type="text" value="" 
        name="ConfirmationHeadline" id="ConfirmationHeadline" 
        class="text-box single-line">

如您所见,输入已经附加了 class属性。嗯,这应该不是问题,只需使用
<%: Html.EditorFor(m => m.ConfirmationHeadline, new { @class="span-11 last"}) %>

并且应该可以工作... 错……不!

这将输出完全相同的代码!

不过,与 Html.TextAreaFor() 一起工作正常

如何删除类 text-box single-line从曾经出现所以可以附加我自己的类(class)?我应该编辑任何 T4 模板?

谢谢大家的帮助。

最佳答案

通过 EditorFor 使用内置编辑器模板时,无法自定义发出的类属性的值。方法。它对类值进行硬编码(此处提供更多信息:http://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-3-default-templates.html)

您有两个选择:

  • 编写您自己的支持额外功能的自定义模板。在这里查看更多详细信息:http://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-4-custom-object-templates.html
  • 处理 EditorFor 的输出方法:

  •  <%: new HtmlString(Html.EditorFor(m=>m.ConfirmationHeadline).ToString()
            .Replace("class=\"text-box single-line\"", 
                     "class=\"text-box single-line span-11 last\"")) %>
    

    关于asp.net-mvc-2 - 在 `Html.EditorFor` 上覆盖类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4078968/

    相关文章:

    charts - 在 Asp.net mvc 中实现 Google Analytics

    asp.net - 如何在 ASP.NET 页面中使用 'Using' 关键字而无需隐藏代码

    asp.net-mvc-2 - 授权(用户 ="*")是什么意思?

    asp.net - 从 ASP.NET 4.0 RC 升级到 RTM 后,ASP.NET MVC 2 View 中出现错误

    javascript - Vue.js文本输入不显示v-model的值

    html - style= attributes 中的注释 - 安全吗?

    actionscript-3 - 如何在没有舞台引用的情况下设置输入文本字段的焦点?

    javascript - 输入时的默认文本

    无法正确识别实例列表中的 Python 类属性

    python - 惰性类属性装饰器