2010-02-23 8 views
5

Esta es una pregunta para principiantes (estoy seguro de que es). Lo intenté por primera vez en una pequeña aplicación web ASP.NET. Estoy trabajando en lo que sucede si desactivo Javascript en un navegador (estoy probando principalmente con Firefox).¿Es OBLIGATORIO JavaScript en el navegador DEBE obtener páginas ASP.NET en funcionamiento?

Resultado: Mi aplicación está completamente rota, aunque nunca escribí ninguna línea de Javascript.

Por ejemplo: Tengo un botón de enlace en una página desde un control LoginStatus. Mirar el código HTML generado en el navegador que veo esto:

<a id="ctl00_ctl00_LoginStatus" href="javascript:__doPostBack('ctl00$ctl00$LoginStatus$ctl02','')">Login</a> 

similares con algunos botones de enlace en un control ListView que permiten ordenar la lista por ciertos campos de datos: El href de la etiqueta de anclaje generado contiene lo siguiente: javascript:WebForm_DoPostBackWithOptions(...).

Por lo tanto, hacer clic en "Iniciar sesión" o intentar ordenar no funciona sin tener Javascript habilitado.

Esto significa: Con Javascript desactivado en el navegador ¿Las aplicaciones ASP.NET no funcionarán correctamente? ¿O qué debo hacer para que la aplicación funcione con Javascript desactivado?

¡Gracias por sus comentarios!

+0

Esto es ASP.NET Web Forms, que es bastante antiguo. Esto no le da absolutamente ningún control sobre el HTML y JavaScript renderizados. Para un control total de todo el HTML y JavaScript, puede usar ASP.NET MVC en su lugar. – bzlm

+1

@bzlm "antique" en el sentido "mantenido activamente, con una nueva versión importante próximamente"? – bdukes

+0

@bdukes Hubo una demostración de COBOL, que muestra el nuevo soporte de COBOL (a través de terceros) en VS 2010 en la presentación técnica de TechEd. No hace que COBOL sea menos antiguo. :) http://graysmatter.codivation.com/post/WebForms-The-Whining-Continues.aspx – bzlm

Respuesta

5

Algunas cosas funcionarán, otras no (ver here). Esto no quiere decir que no puedas usar ASP.NET sin Javascript, solo tendrás que evitar los controles que se mencionan a continuación (y estoy seguro de que también hay una gran cantidad de controles de terceros).

Los controles de servidor ASP.NET que dependen de ser capaz de ejecutar el script de cliente incluyen:

  • Los controles de servidor y LinkButton HtmlButton requieren guión. (Esto no es cierto para el control del servidor Button Web o los controles HtmlInputButton o HtmlInputImage.)
  • De forma predeterminada, el control Calendar implementa la navegación de un mes y la selección de días mediante los controles LinkButton. Si establece propiedades de control para permitir que los usuarios seleccionen un día, una semana o un mes, o si permite que los usuarios naveguen a otros meses, el control Calendar generará un script de cliente. Si usa el control de Calendario simplemente para mostrar un solo mes sin selección o navegación, el control no requiere la secuencia de comandos del cliente.
  • Cualquier control de servidor web cuya propiedad AutoPostBack esté establecida en verdadero; el script del cliente es obligatorio para que el control publique la página.
  • Los controles de validación web, que requieren que el script del cliente admita la validación del lado del cliente. Si el cliente no admite el script, la validación se ejecutará solo en el servidor.
+0

¡Gracias, eso es algo realmente importante de saber! Fue nuevo para mí. – Slauma

4

A menos que cambie al marco de ASP.NET MVC, sí, los sitios ASP.NET creados con el modelo de formularios web requieren JavaScript.

Elementos que tienen activado autopostback, cualquier control linkbutton o button controles, y cualquier validación del lado del cliente dejará de funcionar, como usted ha descubierto.

Cuestiones relacionadas