33 messaggi dal 17 febbraio 2015
Ciao a tutti!

Ho questo semplice script che "dovrebbe", automaticamente al caricamento della pagina, effettuare una chiamata ajax ad una pagina (PagB).

Questa pagina (PagB) effettua una semplice ricerca sul database e mi restituisce un valore che invia alla pagina principale tramite ajax.

Ora, provando nella pagina principale ad inserire un 'alert', il valore viene correttamente ricevuto. Il mio problema è che questo valore non lo riesco ad utilizzare con Razor.

La domanda è questa: come posso fare per poter utilizzare questa variabile da ajax in Razor (no MVC!) in modo da poterla stampare a video e/o manipolare?

Grazie in anticipo a chiunque mi possa aiutare!

PAG. PRINCIPALE:
<script>
    $(document).ready(function () {

        $.ajax({

            url: 'PagB',
            async: true,
            global: false,
            cache: false,
            type: "POST",
            //data: { TestA: 'value' },
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (data) {
                //var value = data ;
                alert(data);

            },
            error: function (data) {
                alert("fail");

            }
        });
    });
</script>

@{ var TestA = Request["TestA"];}
<b><div> @TestA</div>



PagB:

@{
    Json.Write("TestA : ciao", Response.Output); //estrazione dal db
    
}

Modificato da AspNetx il 25 aprile 2015 13.09 - razor,ajax
89 messaggi dal 13 aprile 2004
la pagina principale al caricamento lato client chiama tramite Ajax la pagina PagB, senza passare nessun dato (hai commentato data). Quindi viene processata la chiamata alla pagina PagB che contiene solo (credo che sia di esempio) una renderizzazione in formato JSon di TestA valorizzato a ciao. Quindi nella funzione success della chiamata Ajax ottieni proprio TestA : ciao. E l'alert data dovrebbe proprio evidenziare questo. Ora non ho compreso cosa vuoi ottenere. Infatti il dato l'ottieni lato client quindi non attraverso Razor, che è un linguaggio di renderizzazione lato server. Quello che puoi fare è tramite javascript o meglio tramite qualche framework tipo jQuery è porre ciò che hai ottenuto tramite la chiamata Ajax nel DOM della pagina, al limite creandoti elementi non esistenti. E ciò lo puoi fare proprio all'interno della funzione success.
La parte finale della pagina principale

@{ var TestA = Request["TestA"];}
<b><div> @TestA</div>

Non ha senso in questo contesto infatti la parte Razor viene processata prima del caricamento lato client della pagina e quindi prima della chiamata Ajax.
Spero di essere stato chiaro.
33 messaggi dal 17 febbraio 2015
Hai ragione! Non avevo tenuto conto che Razor alla fine è lato server.

In pratica io volevo che quando un utente entrasse in PagA per creare una nuova categoria, da questa pagina partisse una chiamata Ajax a PagB.

Poi, PagB mi creasse un codice univoco nuovo per la nuova categoria e lo passasse a PagA. Ma, PagA è già bella che processata e quindi non serve a nulla tutto questo.

Grazie comunque per la risposta LittleAnt!

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.