【问题标题】:Html.EditorFor How to set bootstrap class and HTML attributes?Html.EditorFor 如何设置引导类和 HTML 属性?
【发布时间】:2014-07-18 02:50:52
【问题描述】:

我需要使用引导样式和一些 HTML 自定义属性构建输入文本区域。这是我的代码:

        @Html.EditorFor(model => model.Comments, new { style = "color: red; width: 400px", @class = "form-control", placeholder = "Enter detailed comments..."), type = "text" })

我的模型数据来自带有以下数据注释的视图模型:

[DataType(DataType.MultilineText)]
public string Comments{ get; set; }

不幸的是,如果它是 TextBoxFor,这将无法正常工作。 EditorFor 没有设置样式,在屏幕上显示一个普通的小默认 HTML。

我想知道如何解决这个问题?我正在使用 MVC4,但目前无法迁移到 MVC5.1(这是一项要求。我知道 MVC5.1 在该领域有一些改进)。

【问题讨论】:

    标签: html css asp.net-mvc twitter-bootstrap asp.net-mvc-4


    【解决方案1】:

    既然您使用的是MultilineText 属性,我想您想要一个文本区域?您只需将EditorFor 调用更改为TextAreaFor

    @Html.TextAreaFor(model => model.Comments, new { style = "color: red; width: 400px", @class = "form-control", placeholder = "Enter detailed comments..."), type = "text" })
    

    【讨论】:

      【解决方案2】:

      您可以覆盖default editor template (~/Views/Shared/EditorTemplates/MultilineText.cshtml):

      <someboostraphtmlelements>
      @Html.TextArea(
          "", 
          ViewData.TemplateInfo.FormattedModelValue.ToString(),
          ViewData
      )
      </someboostraphtmlelements>
      

      这是无耻地从Darin Dimitrov Answer偷来一个类似的问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-01-23
        • 2010-11-01
        • 2016-10-29
        • 2020-06-13
        • 1970-01-01
        • 1970-01-01
        • 2012-04-09
        • 1970-01-01
        相关资源
        最近更新 更多