我正在尝试将一个样式应用于编辑器中的元素,但我无法使其工作;我做错了什么?
@Html.EditorFor(model => model.ClienteNuevo)
@Html.ValidationMessageFor(model => model.ClienteNuevo,"" ,new Dictionary<string, string> { { "style", "width:500px" } })
答案 0 :(得分:11)
自MVC 5.1,以来,您可以使用htmlAttributes
作为密钥传递自定义属性:
@Html.EditorFor(model => model.ClienteNuevo,
new { htmlAttributes = new { @class = "form-control" } })
在较旧的MVC版本中,无法使用EditorFor
方法添加html属性。
您应该创建自定义editor template或使用Html.TextboxFor
而不是EditorFor
。您应该查看以下主题topic1,topic2。
答案 1 :(得分:6)
您可以创建自己的css类并将其附加到编辑器中:
Picasso.with(this).load("url").fetch();
答案 2 :(得分:2)
EditorFor
调用模板视图而不是输出固定元素,因此它不会将html属性作为参数。对于你正在做的事情,最简单的解决方法是用另一个元素包围编辑器和验证消息,然后将样式应用于:
<div style="width: 500px;">
@Html.EditorFor(model => model.ClienteNuevo)
@Html.ValidationMessageFor(model => model.ClienteNuevo,"")
</div>
答案 3 :(得分:2)
EditorFor
不允许样式化,因为没有其他属性的参数。原因是因为EditorFor并不总是生成单个元素,因为它可以被覆盖。要设置特定类型元素的样式,您需要使用要使用的特定编辑器。例如,如果编辑器是文本框,只需使用TextBoxFor
并以这种方式应用样式。
答案 4 :(得分:0)
@Html.EditorFor(model => model.ClienteNuevo)
@Html.ValidationMessageFor(model => model.ClienteNuevo, "", new { @class = "yourclass" })
我希望你能帮忙