Como sabe, podemos establecer atributos para actionLink o textBox en vistas de maquinilla de afeitar, pero ¿cómo podemos establecer atributos en @Html.EditorFor
, sé que el EditorFor es un elemento dinámico que se puede establecer de acuerdo con el tipo de modelo, pero todas las formas de eso pueden obtener los atributos. Entonces, ¿hay alguna manera de establecer el atributo @Html.EditorFor
algo como esto: new {@class = "myclass"}
?Establezca el atributo de clase en Html.EditorFor en ASP.NET MVC Razor View
Respuesta
El helper EditorFor
representa la plantilla de editor correspondiente. Podría ser el default template o alguna plantilla personalizada que haya escrito. Esta plantilla podría contener cualquier marca. Podría contener muchos elementos DOM. Entonces, ahora entiendes que pedir aplicar una clase a una plantilla no tiene sentido. ¿A qué elemento de esta plantilla quieres que se aplique esta clase? Por ejemplo, con el ayudante TextBoxFor sabes que generará un solo campo de entrada, por lo que tiene sentido hablar sobre aplicarle una clase CSS (eso es exactamente lo que el argumento htmlAttributes
le permite hacer).
Dicho esto, hay diferentes técnicas. Por ejemplo, uno que me gusta mucho es escribir un proveedor de metadatos de modelo de anotaciones de datos personalizado y plantillas de editor personalizado como se describe en el following blog post.
Otra posibilidad es personalizar las plantillas predeterminadas (como se muestra en la publicación de blog de Brad Wilson) y aplicar diferentes atributos de HTML al campo de entrada correspondiente. Tomemos un ejemplo, con el editor de plantillas string.cshtml:
@model string
@Html.TextBox("", ViewData.TemplateInfo.FormattedModelValue, ViewData)
Y ahora cuando se quiere hacer que este editor de plantillas por alguna propiedad de la cadena en su modelo de vista:
@Html.EditorFor(x => x.SomeStringProperty, new { @class = "myclass" })
? Uso esta clase para las entradas con tipo = (texto, archivo) y seleccione (menú desplegable). – Saeid
@dotNetist, OK, entonces, como se indica en mi respuesta, tiene un par de maneras diferentes de implementar esto. –
gracias, pero antes de leer las referencias que mencionas, tengo una pregunta al respecto: no quiero establecer el atributo para todos los tipos de cadenas (por ejemplo), tengo un attribue de custome (en mi modelo) y cambié el codetemplate (T4) y necesito la propiedad con ese atributo personalizado específico, establecí el atributo 'myclass' en editor para helper, ¿así es que piensas o no? – Saeid
Creo que el original cartel era correcta
cada
EditorFor()
crea una
HTML element
principales (aunque puede haber otras personas presentes), por lo que sería muy útil para poder pasar un objeto contieneHTML attributes
aplicar a la principalHTML element
.que desea aplicar el
HTML 5
'enfoque automático' atributo en uno campo en cada forma,pero no quiero tener que escribir código personalizado.
me gusta el hecho de que estoy actualmente reducido a usar, por ejemplo, para que una
@Html.TextBoxFor()
campo sólo para que pueda aplicar específica atributos a lainput element
.El método
EditorFor()
tiene un parámetroque llamanadditionalViewData
, pero no tengo ni idea de lo que puede hacer con eso y buscar en MSDN no ha sido de ninguna ayuda para mí.
Prueba esto:
@Html.EditorFor(model => model.Title, new { htmlAttributes = new { @class = "form-control" } })
probar este código simple para añadir la clase a @Html.EditorFor()
@Html.EditorFor(x => x.Demo)
<style type="text/css">
#Demo
{
color:#fff;
width: 50%;
}
</style>
este código funciona bien para MVC3
Añadir atributos personalizados como
@Html.EditorFor(model => model.Name, new { htmlAttributes = new { @data_minlength = "3", @class = "form-control input-md", @placeholder = "Name", @required = "required", @id= "txtName"} })
Reemplazar Data- a @data_
va a generar html correcta data-
- 1. Motor ASP.NET MVC Razor view
- 2. ASP.NET MVC 3 Razor View Restrictions
- 3. Diferencias entre Html.TextboxFor y Html.EditorFor en MVC y Razor
- 4. ASP.NET MVC Razor concatenación
- 5. ¿Es ASP.net MVC View una "clase"?
- 6. MVC ASP.NET o Razor
- 7. Cómo descargar Razor View Engine
- 8. ASP.Net MVC View Structure
- 9. MVC 3 ASPX VS RAZOR View Engine
- 10. Asp.net MVC View Testing?
- 11. ASP.NET MVC 2 - HTML.EditorFor() y Custom EditorTemplates
- 12. Desplegaderas en cascada en MVC 3 Razor view
- 13. ASP.NET MVC Razor diseñador
- 14. ¿Cómo renderizar una Razor View en una cadena en ASP.NET MVC 3?
- 15. Cómo mostrar/ocultar un área dentro de Razor View en ASP.NET MVC programáticamente
- 16. Autorizar el atributo en ASP.NET MVC
- 17. Variables globales en el motor Razor View
- 18. ASP.NET MVC3 - textarea con @ Html.EditorFor
- 19. Agregar clase css a Html.EditorFor en MVC 2
- 20. anular el atributo "id" de Html.EditorFor - no trabajar
- 21. ASP.NET MVC 3 Razor el rendimiento
- 22. OutputCache in Razor view engine .cshtml página
- 23. ¿Cuál es la clase base de una Razor View en ASP.NET MVC3
- 24. ASP.net MVC 3 Razor - jQuery Intellisense
- 25. Razor View La sintaxis no reconoce la "@" en un atributo de HTML
- 26. ASP.NET MVC - Forzar clase base personalizada para Razor (cshtml) Archivos
- 27. sobrescribir la clase en un `Html.EditorFor`
- 28. ¿Dónde se encuentra el código fuente del Razor View Engine para ASP.NET MVC?
- 29. ASP.NET MVC3 @ Html.EditorFor Checkbox disable enable
- 30. ¿Diferencia entre MVC 3 Partial Page (Razor) y MVC 3 View Page with Layout (Razor)?
No hay sobrecargas para esto, por lo tanto, no se puede hacer esto. ¿Por qué no usa el tipo real que desea (por ejemplo, TextBox) y lo pasa a ese – musefan