将rassor元素添加到razor元素中

The*_*ebs 9 c# asp.net-mvc razor asp.net-mvc-3

剃刀如果我有类似的东西:

@Html.EditorFor(model => model.name) 甚至: @Html.CheckBoxFor(m => m.RememberMe)

我如何向他们添加css类或id?我一直在阅读帮助者,但我是否必须为每一个元素做一个帮手?没有简单的方法可以为razor表单元素添加类或id?

Dar*_*rov 12

你不能EditorFor仅仅因为你不知道将使用什么模板而使用帮助器.您可以实现它,但您需要编写自定义编辑器模板.例如,这可以通过覆盖default editor template并考虑表示附加视图数据的第二参数来实现.

以下是这种自定义编辑器模板如何查找字符串类型(~/Views/Shared/EditorTemplates/string.cshtml)的示例:

@Html.TextBox(
    "", 
    ViewData.TemplateInfo.FormattedModelValue,
    ViewData
)
Run Code Online (Sandbox Code Playgroud)

然后你就可以这样使用它:

@Html.EditorFor(model => model.name, new { @class = "myclass" })
Run Code Online (Sandbox Code Playgroud)

使用CheckBoxFor助手,您可以这样做:

@Html.CheckBoxFor(m => m.RememberMe, new { @class = "myclass" })
Run Code Online (Sandbox Code Playgroud)