我有一个使用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(),它可以按照我想要的方式呈现。
答案 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