¿Por qué ASP.NET representa el elemento de entrada oculto __VIEWSTATE
dentro de <div></div>
?¿Por qué el elemento de entrada oculta __VIEWSTATE está rodeado por <div></div>?
Respuesta
Lo hicieron para "ser más alineado con los estándares web" - aquí es una cita de MSDN Magazine artículo Enforce Web Standards For Better Accessibility:
Hubo algunas deficiencias conocidas en ASP.NET 1.1. Los controles listos para usar producían código que no pasaría la validación. Que se atribuyó en gran parte a la forma en que se manejó ViewState en ASP.NET 1.1 que utilizan una etiqueta de entrada oculto que no estaba contenida dentro de una ventana de secuencia, como esto:
<input type="hidden" name="__VIEWSTATE" value="dDwtMTU1NzQzNDgy..." />
Esto, combinado con algunas otras cuestiones sintácticas, le dio a ASP.NET 1.1 una desafortunada reputación por incumplimiento.
ASP.NET 2.0 solucionó muchos de los problemas de estándares web. Por ejemplo, si nos fijamos en la fuente de las páginas ASP.NET 2.0-generados, se ve que ViewState está envuelto en una etiqueta div, por lo que es compatible con:<div> <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="dDwtMTU1NzQzNDgy..." /> </div>
Microsoft ha dado a conocer públicamente que una de los objetivos de ASP.NET 2.0 es para estar más alineado con los estándares web y, de hecho, ASP.NET 2.0 le permite crear sitios web y controles compatibles. Un buen recurso para construir sitios Web compatibles es el artículo MSDN® de Stephen Walther "Building ASP.NET 2.0 Web Sites Using Web Standards". Este artículo de 78 páginas entra en gran detalle en la construcción de sitios de acuerdo con los estándares web.
Si esto está realmente más alineado con los estándares web está abierto para el debate personalmente No estoy en los estándares web lo suficiente como para hacer mi propia opinión, solo respondo lo que usted pidió.
OK.En realidad, todavía no entiendo por qué un '' parado por sí mismo no "pasaría la validación". Pero gracias muchísimo por la entrada. –
Estoy con usted en esto - tal vez valga la pena una pregunta por separado, preguntando desde los estándares web puros y/o el punto de vista de CSS. :) Por cierto, de alguna manera recibiste una afluencia de votos positivos, ¡aplausos por eso! (solo el primero fue de mi parte) –
Consulte la biografía al final del artículo citado: el autor * no * es parte del equipo de ASP.NET. – Richard
- 1. Android Galaxy Tab: ¿Por qué el ícono de lanzamiento está rodeado por un borde rosado?
- 2. ¿Por qué es {} <función() {}?
- 3. SVG <script> elemento: por dentro o por fuera?
- 4. ¿Por qué la redirección de entrada "<" no está implementada en PowerShell?
- 5. ¿Por qué la entrada oculta afecta mi diseño? LF Explicación
- 6. El elemento <#text> debajo del elemento <Target> no está reconocido en Azure
- 7. ¿Qué está haciendo el operador << en C++?
- 8. ¿Por qué está usando `<< -` mal visto y cómo puedo evitarlo?
- 9. Delphi Math: ¿Por qué 0.7 <0.70?
- 10. ¿Por qué Enumerable.ToLookup <>() devuelve un ILookup <,> y no una búsqueda <,>?
- 11. ¿Por qué (?! ^) Es equivalente a (? <! ^)?
- 12. ¿Por qué usar <label>?
- 13. Reemplazo por <center>
- 14. ¿Qué es <span></span> elemento?
- 15. ¿Por qué es Func <T> ambiguo con Func <IEnumerable <T>>?
- 16. ¿Por qué el Diccionario <TKey, TValue> no tiene un IEnumerable <KeyValuePair <TKey, TValue >> ctor?
- 17. Por qué el resultado de char sin signo << char sin signo no está sin signo char
- 18. ¿Por qué mi DisplayFor no está pasando por mi IEnumerable <DateTime>?
- 19. ¿Por qué se sella el predicado <>?
- 20. Esquema que se oculta por el siguiente elemento
- 21. En PHP, ¿qué representa "<<<"?
- 22. ¿Por qué el uso de ambos <% y <% = en las vistas?
- 23. ¿Por qué el borde de <th> y <thead> no se muestran aquí?
- 24. ¿Qué significa el operador de Bash <<<?
- 25. ¿Por qué mi oculto <tr> no está realmente oculto?
- 26. ASP.NET: ¿Qué significa el '#' que empieza por <% %>?
- 27. ¿Por qué SynchronizedCollection <T> en el ensamblado System.ServiceModel?
- 28. ¿Por qué no cambia el color <hr />?
- 29. ¿Está mi sitio a salvo de XSS si reemplazo todo '<' por '<'?
- 30. ¿Por qué IIS Express usa <system.web> y no <system.webServer>?
Gracias de antemano por los votos hacia abajo. Si el tiempo lo permite, hágamelo saber por qué. –
Le pide a la gente que especule: esto no se ajusta al enfoque [SO] de hacer preguntas que tienen respuestas objetivas. Ver las preguntas frecuentes – Richard
Eso es BS. No estoy pidiendo especulaciones. Estoy buscando una respuesta. Como desarrollador web, me preocupo por cada elemento de mi página. Un '
' ocupa espacio. Con tiempo suficiente, alguien que conozca la respuesta aparecerá aquí y déjenos saber los motivos de esta decisión. Hay mucha gente en SO que puede obtener la información privilegiada si hacemos las preguntas correctas. ¿Por qué no dejas que esto sea por un tiempo? –