2010-02-23 15 views
5

Questa è una domanda per principianti (sono sicuro che sia). Ho provato per la prima volta in una piccola applicazione web ASP.NET, sto lavorando su cosa succede se disattivo Javascript in un browser (sto testando principalmente con Firefox).L'abilitazione di JavaScript nel browser DEVE ottenere pagine ASP.NET funzionanti?

Risultato: la mia applicazione è completamente danneggiata, anche se non ho mai scritto alcuna riga di Javascript.

Ad esempio: ho un pulsante di collegamento su una pagina da un controllo LoginStatus. Guardando il codice HTML generato nel mio browser vedo questo:

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

Simile con alcuni pulsanti di collegamento in un controllo ListView che permettono di ordinare l'elenco per determinati campi di dati: La href del tag di ancoraggio generato contiene questo: javascript:WebForm_DoPostBackWithOptions(...).

Quindi, fare clic su "Accedi" o tentare di ordinare non funziona senza che Javascript sia abilitato.

Ciò significa: con Javascript disabilitato nel browser Le applicazioni ASP.NET non funzioneranno correttamente? O cosa devo fare per far funzionare l'applicazione con Javascript disabilitato?

Grazie per il vostro feedback!

+0

Questo è ASP.NET Web Forms, che è piuttosto antico. Questo non ti dà assolutamente alcun controllo sul rendering HTML e JavaScript. Per il controllo completo di tutto HTML e JavaScript, è possibile utilizzare invece ASP.NET MVC. – bzlm

+1

@bzlm "antico" nella "versione mantenuta attivamente, con una nuova versione importante in arrivo"? – bdukes

+0

@bdukes C'era una demo COBOL, che mostrava il nuovo supporto COBOL (tramite terze parti) in VS 2010 nel keynote tecnico su TechEd. Non rende il COBOL meno antico. :) http://graysmatter.codivation.com/post/WebForms-The-Whining-Continues.aspx – bzlm

risposta

5

Alcune cose funzioneranno, altre no (vedere here). Questo non vuol dire che non puoi usare ASP.NET senza Javascript, devi solo evitare i controlli sotto menzionati (e sono sicuro anche di una pletora di controlli di terze parti).

I controlli server ASP.NET che dipendono da essere in grado di eseguire script client includono:

  • I controlli server LinkButton e HtmlButton richiedono script. (Ciò non è vero per il controllo server Web Button oi controlli HtmlInputButton o HtmlInputImage.)
  • Per impostazione predefinita, il controllo Calendar implementa la navigazione del mese e la selezione del giorno utilizzando i controlli LinkButton. Se si impostano le proprietà di controllo per consentire agli utenti di selezionare un giorno, una settimana o un mese o se si consente agli utenti di spostarsi su altri mesi, il controllo Calendar genererà script client. Se si utilizza il controllo Calendar per visualizzare semplicemente un mese senza selezione o navigazione, il controllo non richiede script client.
  • Qualsiasi controllo server Web la cui proprietà AutoPostBack è impostata su true; lo script client è richiesto in modo che il controllo pubblichi la pagina.
  • I controlli di convalida Web, che richiedono lo script client per supportare la convalida lato client. Se il client non supporta lo script, la convalida verrà eseguita solo sul server.
+0

Grazie, è davvero una cosa importante da sapere! Era nuovo per me. – Slauma

4

A meno che non si passi al framework ASP.NET MVC, sì, i siti ASP.NET creati con il modello di moduli Web richiedono JavaScript.

Gli elementi che hanno autopostback attivato, qualsiasi controllo linkbutton o controlli button e qualsiasi convalida sul lato client cesseranno di funzionare, come hai scoperto.

Problemi correlati