asp.net mvc修改视图模型中特定项的CSS

时间:2013-05-24 17:54:04

标签: asp.net-mvc

我有一个使用EditorFor()渲染的视图模型,我希望能够在模型中设置特定元素的CSS。例如:

public class BasicIdentification
{
    //Primitive Types
    [Display(Name = "First Name")]
    public String FName { get; set; }

     [Display(Name = "Last  Name")]
    public String LName { get; set; }

}

如果我想为FName和LName设置CSS类,我该怎么做?如何将css“连接”到我的模型。我希望能够使用EditorFor(),它可以按照我想要的方式呈现。

3 个答案:

答案 0 :(得分:6)

在视图中,默认情况下会看到类似的内容

<div class="display-label">
    @Html.DisplayNameFor(model => model.LName)
</div>
<div class="display-field">
    @Html.TextBoxFor(model => model.LName)
</div>

要添加CSS类或其他内容,您只需执行此操作即可。

@Html.TextBoxFor(model => model.LName, new { @class="classname" })

类本身是.NET的保留字,所以@class只是意味着使用HTML类属性。

答案 1 :(得分:0)

您不希望每个人都说“设置CSS”,但我没有看到在视图模型中包含状态的问题,然后可以将其转换为可用于设置样式的HTML类适当地在你看来。

答案 2 :(得分:0)

为BasicIdentification类创建一个名为BasicIdentification.cshtml的EditorTemplate。

<table>
  <tbody>
    <tr>
      <td>
        @Html.DisplayFor(model => model.FName)
        @Html.EditorFor(model => model.FName)
      </td>
      <td>
        @Html.DisplayFor(model => model.LName)
        @Html.EditorFor(model => model.LName)
      </td>
    </tr>
  </tbody>
<table>

然后,只要您执行@Html.EditorForModel()并且您的模型是您的BasicIdentification类,就会生成上述HTML。

修改:有关编辑器模板的其他信息:http://dineshkumara.blogspot.ca/2011/06/mvc-3-razor-editor-template.html