Creo que el marcado debe permanecer en el marcado y no en el código detrás.
Llegué a una situación en la que creo que es aceptable construir el HTML en el código que se encuentra detrás. Me gustaría llegar a un consenso sobre cuáles son o deberían ser las mejores prácticas.
¿Cuándo es aceptable construir html en el código detrás? ¿Cuál es el mejor método para crear este html? (ejemplo: Strings, StringBuilder, HTMLWriter, etc.)
Respuestas:
¿Usar algo como Razor no es aplicable aquí? Porque si estás generando mucha html con un motor de visualización, puedes hacerlo mucho más fácil. También fue construido para ser usado fuera de ASP.NET.
Sin embargo, a veces eso no es lo que necesitas. ¿Ha considerado usar la clase TagBuilder que es parte de .net (mvc)? También está el HtmlWriter en System.Web.UI (para formularios web). Recomendaría uno de estos si está haciendo
Controls
oHtml Helpers
.fuente
Me gustaría utilizar la agilidad paquete HTML para montar HTML y luego escribirlo en un archivo de texto.
Se emplearon muchas horas de trabajo para hacer que el paquete de agilidad HTML sea robusto y
compatible conHTML.Creo que incluso incluye una aplicación de muestra que genera HTML.
Desde la página de inicio:
fuente
Me gustaría utilizar htmltags para crear HTML.
Ejemplo:
Y luego CSQuery si quiero analizar HTML
Ejemplo:
fuente
Por supuesto, existen bibliotecas, como HTML Agility Pack, que pueden ayudarlo en estos esfuerzos.
Si realmente no desea utilizar una biblioteca existente, y desea un código simple y sucio, me gusta la idea de resumir algunos de los comportamientos como se indicó en una respuesta anterior. También me gusta la idea de usar un StringBuilder subyacente, en lugar de una cadena por un par de razones:
Si no necesito un motor HTML diseñado de forma masiva, crearía una interfaz simple e intuitiva
fuente
Si termina usando solo cadenas, no olvide escapar de todos los caracteres HTML reservados en sus datos de salida.
Sin embargo, recomiendo usar una clase o biblioteca compatible con HTML en lugar de trabajar directamente con cadenas. HTMLWriter parece un muy buen comienzo.
fuente
Casi dos años después de la publicación original, aquí hay una solución que me ha funcionado bien. En el documento de destino coloco lo siguiente:
la función que se llama se ve así:
Y el resultado resultante en el navegador es el esperado:
El número es: 0
El número es: 1
El número es: 2
El número es: 3
El número es: 4
Cuando voy a ver la fuente, encuentro lo siguiente:
fuente
¡LLAMA EN!
Probablemente me rechazarán por esto, pero como ex diseñador que tuvo que ajustar HTML en el código antes de que realmente supiera mucho sobre .NET, el código anterior fue mucho más fácil de entender que los métodos que abstraen la creación de HTML. Si crees que un diseñador podría tener que modificar tu HTML, usa cadenas simples como esta.
Algo que veo que muchos desarrolladores pierden cuando escriben HTML en código es que en HTML, se permiten comillas simples o dobles para los atributos. Por lo tanto, en lugar de escapar de todas las comillas en el código (que parece no estar bien para los no iniciados), solo use comillas simples para las comillas html dentro de sus cadenas.
MULTA. Todos los que odian a los concatenantes están atacando a mi representante. Aquí está la forma 'adecuada' de hacer esto sin concatenación de cadenas, pero mantengo mi opinión de que cualquier página normal con tablas normales no presentará ningún problema de rendimiento fuera de una escala ridícula similar a Google:
fuente
+=
dentro de un bucle de esta manera no escala en absoluto; Debido a que las cadenas son inmutables, está creando una cadena nueva cada vez que lo hace. Use unStringBuilder
en su lugar.If you think a designer might ever have to tweak your HTML, use simple strings like this.
es difícil de entender? La definición de algunas personas de código horrible es la que compra milisegundos de rendimiento a costa de tomarse unos segundos para comprender completamente. Claramente, cuando anticipa que su código sea visto o mantenido por el mínimo común denominador individual, lo más seguro es que escribir un código que sea más fácil de entender o modificar siempre es mejor que el código más limpio o de mejor rendimiento.