为编辑器添加样式

我正在尝试将一个Style应用于编辑器中,但是我无法使其工作; 我究竟做错了什么?

@Html.EditorFor(model => model.ClienteNuevo) @Html.ValidationMessageFor(model => model.ClienteNuevo,"" ,new Dictionary { { "style", "width:500px" } }) 

从MVC 5.1开始,您可以使用htmlAttributes作为键传递自定义属性:

 @Html.EditorFor(model => model.ClienteNuevo, new { htmlAttributes = new { @class = "form-control" } }) 

在较旧的MVC版本中 ,无法使用EditorFor方法添加html属性。
您应该创建自定义编辑器模板或使用Html.TextboxFor不是EditorFor 。 您应该检查这些主题topic1 , topic2 。

您可以创建自己的css类并将其附加到编辑器:

 @Html.EditorFor(model => model.Name, new { htmlAttributes = new { @class = "custom-editor" } }) @Html.ValidationMessageFor(model => model.Name, "", new { @class = "text-danger" }) 

EditorFor调用模板视图而不是输出固定元素,因此它不会将html属性作为参数。 对于你正在做的事情,最简单的解决方法是用另一个元素包围编辑器和validation消息,然后将样式应用于:

 
@Html.EditorFor(model => model.ClienteNuevo) @Html.ValidationMessageFor(model => model.ClienteNuevo,"")

EditorFor不允许样式,因为没有其他属性的参数。 原因是因为EditorFor并不总是生成单个元素,因为它可以被覆盖。 要设置特定类型元素的样式,您需要使用要使用的特定编辑器。 例如,如果编辑器是文本框,只需使用TextBoxFor并以这种方式应用样式。

 @Html.EditorFor(model => model.ClienteNuevo) @Html.ValidationMessageFor(model => model.ClienteNuevo, "", new { @class = "yourclass" }) 

我希望你能帮忙