为编辑器添加样式
我正在尝试将一个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" })
我希望你能帮忙