2011-12-15 15 views
5

Mam stronę .csHtml. Strona jest zapełniana przez wywołanie metody w kontrolerze za pomocą Jquery $ .get. Metoda w kontrolerze wywołuje bazę danych i zwraca częściowy widok. Widok częściowy jest renderowany wewnątrz znacznika DIV.

Dane są wyświetlane w czasie rzeczywistym. Teraz po naciśnięciu Ctrl + F5 strona się odświeża, ale wciąż wyświetla te same dane. Wprowadziłem punkt przerwania w metodzie sterownika i zdałem sobie sprawę, że metoda w kontrolerze nie jest wywoływana.

Po raz pierwszy metoda jest wywoływana po naciśnięciu klawisza F5 i uruchomieniu w programie Visual Studio. Drugi raz, kiedy odświeżam dane, nie jest odświeżany.

Jeśli muszę zobaczyć jakiekolwiek zmiany wyświetlane w bazie danych, muszę ponownie uruchomić studio graficzne.

Każda wskazówka, co może się stać? Poniżej znajduje się fragment kodu.

// 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(); 
    }); 
} 

Wszelkie pomysły i sugestie dotyczące tego, co może się stać?

+1

Czy widzimy kod kontrolera, który jest wywoływany przez wywołanie Ajax? –

+0

@elkdanger: Umieściłem punkt przerwania na początku metody kontrolera i widzę, a nie działa ona na metodę. Jednak dane zmienne zostaną wypełnione starymi danymi. – DotNetUser

+0

Brak "[OutputCache]" na kontrolerze, prawda? –

Odpowiedz

4

Myślę, że to pamięć podręczna, która jest włączona. Możesz kontrolować pamięć podręczną, używając metody $.ajax. Spróbuj przepisać to tak:

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

Mam nadzieję, że pomoże.

+0

Dokładnie to, co pisałem, możesz zazwyczaj przetestować, sprawdzając odpowiedź w narzędziach deweloperskich jakiejkolwiek przeglądarki, z której korzystasz, co zwykle pokazuje poprawna odpowiedź, a następnie html jest właśnie aktualizowany z buforowanymi danymi. –

+0

@Thomas Jaskula, buforowanie zostało włączone i to właśnie spowodowało problem. Dzięki! – DotNetUser

Powiązane problemy