2011-12-15 15 views
5

Ho una pagina .csHtml. La pagina viene popolata chiamando un metodo nel controllore usando Jquery $ .get. Il metodo nel controller effettua una chiamata al database e restituisce una vista parziale. La vista parziale è resa all'interno di un tag DIV.

I dati vengono visualizzati in tempo reale. Ora quando premo ctrl + f5, la pagina si aggiorna, ma mostra ancora gli stessi dati. Ho inserito un punto di interruzione nel metodo del controller e mi sono reso conto che il metodo nel controller non viene chiamato.

La prima volta che si chiama il metodo quando si preme F5 ed è in esecuzione in Visual Studio. La seconda volta quando aggiorno i dati non viene aggiornato.

Se devo vedere eventuali modifiche visualizzate nel database, devo riavviare lo studio visivo.

Qualsiasi indizio su cosa potrebbe essere felice? Di seguito è riportato lo snippet di codice.

// Our onReady actions; 
$(document).ready(function() { 
    $('#RateTab').click(function() { 
     getRates(); 
    }); 
}); 

function getRates() { 
    var URL = "home/Rates"; 

    $.get(URL, function (data) { 
     $('#loading').hide(); 
     $("#rates").html(data); 

     //Initialize(); 
    }); 
} 

Qualche idea e suggerimento su cosa potrebbe essere felice?

+1

Possiamo vedere il codice del controller che viene chiamato dalla chiamata Ajax? –

+0

@elkdanger: inserisco il punto di interruzione all'inizio del metodo del controller e vedo e non colpisce il metodo. Tuttavia, i dati variabili vengono popolati con i vecchi dati. – DotNetUser

+0

No '[OutputCache]' abilitato sul controller, corretto? –

risposta

4

Penso che sia una cache abilitata. È possibile controllare la cache utilizzando il metodo $.ajax. Prova a riscriverlo in questo modo:

$.ajax({ 
    url : URL, 
    type : 'GET', 
    cache : false, 
    success : function (data) { 
      $('#loading').hide(); 
      $("#rates").html(data);} 
}); 

Spero che sia d'aiuto.

+0

Esattamente quello che stavo scrivendo, puoi testarlo tipicamente ispezionando la risposta negli strumenti di sviluppo di qualunque browser stai utilizzando, che in genere mostra ancora la risposta corretta e quindi l'html è appena aggiornato con i dati memorizzati nella cache. –

+0

@Thomas Jaskula, la memorizzazione nella cache è stata abilitata e questo è ciò che ha causato il problema. Grazie! – DotNetUser

Problemi correlati