2011-10-13 34 views
9

Estoy intentando aplicar un Estilo al Editor para un elemento, pero no puedo hacerlo funcionar; ¿Qué estoy haciendo mal?Agregar estilo al Editor Para

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

Respuesta

10

No hay manera de añadir atributos HTML con el EditorFor method.You debe crear una costumbre editor template o utilizar Html.TextboxFor Istead de EditorFor. Debe consultar estos temas topic1, topic2.

2

EditorFor invoca vistas plantilla en lugar de dar salida a un elemento fijo, por lo que no se necesita atributos HTML como un argumento. Para algo parecido a lo que está haciendo la solución más fácil sería para rodear el editor y el mensaje de validación con otro elemento, y aplicar el estilo a la vez:

<div style="width: 500px;"> 
@Html.EditorFor(model => model.ClienteNuevo) 
@Html.ValidationMessageFor(model => model.ClienteNuevo,"") 
</div> 
+0

Downvoter: el cuidado en comentar? – StriplingWarrior

2

EditorFor no permite un estilo ya que no existen parámetros para atributos adicionales. El motivo es que EditorFor no siempre genera un elemento único, ya que puede anularse. Para diseñar un tipo específico de elemento, debe usar el editor específico que desea usar. Por ejemplo, si el editor es un cuadro de texto, simplemente use TextBoxFor y aplique el estilo de esa manera.

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

espero que ayude

3

Puedes crear tu propia clase CSS y appendd a su editor:

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