Estoy creando métodos de extensión HtmlHelper. Muchos de los métodos de framework incorporados soportan parámetros como htmlAttributes (de tipo object) que se renderizan en el HTML resultante. ¿Cómo puedo proporcionar sobrecargas de mis propios métodos que también admiten un parámetro htmlAttributes sin reescribir la lógica de concatenación de cadenas para representarlos como atributos en la etiqueta?¿Cómo soportar los parámetros htmlAttributes en HtmlHelper Extensions?
Respuesta
El objeto HtmlHelper
tiene un método que convierte un objeto en un diccionario de nombre/valor, que luego puede combinar en la etiqueta a medida que se está construyendo. Por ejemplo, este código generará una etiqueta <script>
con lo que se pasan atributos adicionales en:
var attributes = HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes) as IDictionary<string, object>;
TagBuilder tag = new TagBuilder("script");
tag.MergeAttributes(attributes);
tag.MergeAttribute("type", "text/javascript");
tag.MergeAttribute("src", scriptPath);
Usted puede proporcionar sobrecargas o utilizar los valores por defecto para suministrar un valor para null
htmlAttributes
, que producirá un vacío Dictionary
.
(El método también desinfecta los nombres de atributo en atributos HTML válido, etc por lo que es seguro de usar en casi cualquier objeto.)
Guau, justo lo que necesitaba. ¡Gracias! – blaster
- 1. métodos HtmlHelper y RouteValueDictionary
- 2. Cómo agregar htmlAttributes adicionales en la extensión de DropDownListFor
- 3. ActionLink htmlAttributes
- 4. Agregar a routeValues en el método de extensión HtmlHelper
- 5. Begin.Form con sobrecarga que acepta routeValues y htmlAttributes
- 6. Html.BeginForm con múltiples htmlAttributes
- 7. Cómo obtener valores fuera del objeto HtmlAttributes
- 8. TortoiseGit vs Git Extensions
- 9. ¿Cómo obtener la ruta actual en HtmlHelper?
- 10. Cross Compiling Python Extensions
- 11. Html.TextBoxFor formateo o Html.EditorFor htmlAttributes?
- 12. ¿Debo soportar Unicode en contraseñas?
- 13. ¿Cómo se obtiene un ID personalizado para hacer uso de HtmlHelper en MVC
- 14. ¿Cómo puedo soportar tanto HTML4 como HTML5?
- 15. Cómo evitar los parámetros?
- 16. Cómo soportar todas las diferentes resoluciones de productos Android
- 17. ¿Android planea soportar Java7?
- 18. HtmlHelper NameFor method
- 19. ¿Cómo organizaría estas llamadas usando Reactive Extensions (Rx) en Silverlight?
- 20. Google Chrome Extensions y NPAPI
- 21. Agregar condicionalmente htmlAttributes a ASP.NET MVC Html.ActionLink
- 22. Cómo probar la unidad HtmlHelper con Moq?
- 23. Parámetros nombrados con los parámetros
- 24. Acceder a User.Identity.Name en la clase HTMLHelper
- 25. ¿Cómo soportar solicitudes HTTP comprimidas en Asp.Net 4.0/IIS7?
- 26. Uso de HtmlHelper en un controlador
- 27. ¿cómo puedo desarrollar Apple Java Extensions en Windows?
- 28. TextBoxFor vs EditorFor, y htmlAttributes vs additionalViewData
- 29. ¿Cómo soportar múltiples selecciones de texto en el navegador?
- 30. ¿Cómo desinfecta SqlCommand los parámetros?
¿Qué tienes hasta ahora? –