我试图设置我的String.chtml EditorTemplate的ViewData [" class"]。当我从ViewModel中删除DataType.x属性时,它正在工作。但我想保留我的DataType.Password并应用其他css类。
我正在使用:
我试过了:
我更愿意:
这是我在EditorTemplates文件夹中的String.chtml:
视图模型(使用压缩我的EditorTemplate的DataTypeAttributes):
这是使用新的EditorTemplate(String.chtml)的Login.chtml:
我目前的结果:
如果指定了DataType.Password / DataType.EmailAddress属性,如何向Html.ForEditor添加CSS类?
让我知道什么时候不清楚,我会添加/更改它。
答案 0 :(得分:2)
这里的问题是对实际情况的根本误解。 DataType不会覆盖您的ViewData,它会导致选择完全不同的模板..即...内置的默认密码或EmailAddress模板。
DataType的目的是选择用于渲染的模板。所以你真正想做的是创建一个EmailAddress.cshtml和一个Password.cshtml模板,并将表单控件属性添加到那些模板。但是,这些并不是必需的,因为您可以将这些属性添加到MVC 5.1或更高版本的EditorFor中。
@Html.EditorFor(x => x.Password, htmlAttributes: new { @class = "form-control" })