none
passagio dati tra a asp.net e javascript RRS feed

  • Domanda

  • Caro forum

    Al momento di creare una pagina web,dovrei passare dei dati a javascript, giusto 4

    lettere che identificano il browser.

    Un metodo potrebbe essere scrivere dei cookie con

    Response.Cookies.Add(..),

    e poi leggerli in javascript con

    document.cookie.toString();

    Esiste qualcos' altro ?

    Grazie

    Rob

    mercoledì 8 febbraio 2012 08:12

Risposte

  • Caro forum

    Al momento di creare una pagina web,dovrei passare dei dati a javascript, giusto 4

    lettere che identificano il browser.

    Un metodo potrebbe essere scrivere dei cookie con

    Response.Cookies.Add(..),

    e poi leggerli in javascript con

    document.cookie.toString();

    Esiste qualcos' altro ?

    Grazie

    Rob

    javascript ha già un oggetto client con tutte le info che ti servono:

    http://www.w3schools.com/js/js_browser.asp

    Come specificato nelle note non esiste uno standard che regoli l'oggetto Navigator, ma è ampiamente supportato da tutti i browser.

    Se invece usi JQuery, che è anche meglio, puoi utilizzare questo: http://api.jquery.com/jQuery.browser/

    Ciao!


    Francesco Milano // .NET & SQL Server Consultant // blog // twitter

    • Proposto come risposta Irina Turcu lunedì 13 febbraio 2012 16:17
    • Contrassegnato come risposta Irina Turcu lunedì 20 febbraio 2012 12:20
    mercoledì 8 febbraio 2012 08:43
  • Ciao,

    Come ti ha detto Francesco puoi conoscere la versione del Browser direttamente lato client con javascript.

    Se invece vuoi passare variabili o oggetti complessi puoi seguire diverse strade senza fare inutili chiamate AJAX.

    1. Usare hidden fields, magari per singoli valori o oggetti non troppo complessi.
    2. Creare oggetti Javascript nel code behind con JSON.

    Per la prima soluzione puoi vedere questo semplice video 

    Per la seconda, qui trovi un pò di materiale su JSON se non lo conoscessi, puoi seguire diverse strade usare il javascript serializer o creare a manina il tuo oggetto JSON.
    Alla fine devi registrare il tutto all'interno di un tag script.

    In queste pagine trovi due esempi sull'uso del JavascriptSerializer  semplice, articolato 

    Questo un codice di esempio per registrare il tuo script con il Json scritto a manina:

    protected void RegisterScript()

    {

    StringBuilder sb = new StringBuilder();sb.Append(@"<script language='javascript'>");

        sb.Append(@"var obj = {nome:'Ezio',cognome:'Santori'};");

        sb.Append(@"</script>");

     

        if (!ClientScript.IsStartupScriptRegistered("JSScript"))

        {

            ClientScript.RegisterStartupScript(this.GetType(), "JSScript", sb.ToString());

        }

    }

    A questo punto nel tuo javascript puoi ottenere il valore che ti serve:
    alert(obj.nome);


    • Modificato Ezio Santori venerdì 10 febbraio 2012 23:07
    • Proposto come risposta Marco Siniscalco domenica 12 febbraio 2012 00:53
    • Contrassegnato come risposta Irina Turcu lunedì 20 febbraio 2012 12:20
    venerdì 10 febbraio 2012 23:06

Tutte le risposte

  • Caro forum

    Al momento di creare una pagina web,dovrei passare dei dati a javascript, giusto 4

    lettere che identificano il browser.

    Un metodo potrebbe essere scrivere dei cookie con

    Response.Cookies.Add(..),

    e poi leggerli in javascript con

    document.cookie.toString();

    Esiste qualcos' altro ?

    Grazie

    Rob

    javascript ha già un oggetto client con tutte le info che ti servono:

    http://www.w3schools.com/js/js_browser.asp

    Come specificato nelle note non esiste uno standard che regoli l'oggetto Navigator, ma è ampiamente supportato da tutti i browser.

    Se invece usi JQuery, che è anche meglio, puoi utilizzare questo: http://api.jquery.com/jQuery.browser/

    Ciao!


    Francesco Milano // .NET & SQL Server Consultant // blog // twitter

    • Proposto come risposta Irina Turcu lunedì 13 febbraio 2012 16:17
    • Contrassegnato come risposta Irina Turcu lunedì 20 febbraio 2012 12:20
    mercoledì 8 febbraio 2012 08:43
  • Ciao,

    Come ti ha detto Francesco puoi conoscere la versione del Browser direttamente lato client con javascript.

    Se invece vuoi passare variabili o oggetti complessi puoi seguire diverse strade senza fare inutili chiamate AJAX.

    1. Usare hidden fields, magari per singoli valori o oggetti non troppo complessi.
    2. Creare oggetti Javascript nel code behind con JSON.

    Per la prima soluzione puoi vedere questo semplice video 

    Per la seconda, qui trovi un pò di materiale su JSON se non lo conoscessi, puoi seguire diverse strade usare il javascript serializer o creare a manina il tuo oggetto JSON.
    Alla fine devi registrare il tutto all'interno di un tag script.

    In queste pagine trovi due esempi sull'uso del JavascriptSerializer  semplice, articolato 

    Questo un codice di esempio per registrare il tuo script con il Json scritto a manina:

    protected void RegisterScript()

    {

    StringBuilder sb = new StringBuilder();sb.Append(@"<script language='javascript'>");

        sb.Append(@"var obj = {nome:'Ezio',cognome:'Santori'};");

        sb.Append(@"</script>");

     

        if (!ClientScript.IsStartupScriptRegistered("JSScript"))

        {

            ClientScript.RegisterStartupScript(this.GetType(), "JSScript", sb.ToString());

        }

    }

    A questo punto nel tuo javascript puoi ottenere il valore che ti serve:
    alert(obj.nome);


    • Modificato Ezio Santori venerdì 10 febbraio 2012 23:07
    • Proposto come risposta Marco Siniscalco domenica 12 febbraio 2012 00:53
    • Contrassegnato come risposta Irina Turcu lunedì 20 febbraio 2012 12:20
    venerdì 10 febbraio 2012 23:06
  • Grazie

    valuto tutte e 4 le strade e vi faccio sapere tra un po quale ho trovato piu comoda.

    A presto

    lunedì 13 febbraio 2012 15:33
  • Ciao Rob,

    Ho evidenziato le risposte che hai ricevuto, al pensiero che può servire come un riferimento utile per altri membri che magari si sono imbattuti in un caso simile. Se hai più di tempo per esaminare il problema e darci ulteriori feedback, rimaniamo in attesa dei tuoi commenti.

    Saluti,


    Irina Turcu - Microsoft

    Windows 8 parla la tua lingua?

    Questo contenuto è distribuito “as is” e non implica alcuna responsabilità da parte di Microsoft. L'azienda offre questo servizio gratuitamente, allo scopo di aiutare gli utenti e approfondire la loro conoscenza dei prodotti e tecnologie Microsoft.

    LinkedIn

    lunedì 20 febbraio 2012 12:20