2010-12-21 9 views
6

Mam stronę zawierającą niektóre instrukcje użytkownika. Chciałbym załadować te kontrole użytkownika po odświeżeniu jak renderowanie ajax.Częściowe renderowanie po wczytaniu strony

Każda kontrolka użytkownika wyświetla listę z bazy danych i nie chcę, aby użytkownik czekał, podczas gdy kod serwera buduje odpowiedź Myślę, że będzie to przydatne, jeśli strona jest wyświetlana dla użytkownika i po tym, jak użytkownikkontroluje ładowanie przez żądanie ajax .

Czy istnieje rozwiązanie ASP.NET MVC? Czy istnieje rozwiązanie tego problemu?

dzięki: l.

Odpowiedz

5

Wystarczy użyć jQuery wiążą HTML zwrócony od metody działania (co powinno powrócić częściowy efekt zewnętrzny - na przykład sygnał wyjściowy z kontrolą użytkownika/częściowe)

Kontroler:

[HttpGet] 
public PartialViewResult GetSomeData() 
{ 
    var data = somewhere.GetSomething(); 
    return PartialView(data); // partial view should be typed to data. 
} 

jQuery:

$(document).ready(function() { 
    $.get('/home/getsomedata/', function(data) { 
     $('#target').html(data); 
    }); 
}); 
+2

Możesz nawet użyć ** $ ("# cel"). Load ('/ home/getsomedata /') ** –

+0

Tak - na pewno. – RPM1984

+0

Czy można również załadować dane PartialView przy użyciu kodu Razor? –

3

zwykle zrobić w ten sposób:

W znacznikach zastrzegam przestrzeń dla użytkownika kontroli mają być załadowane jak

<div id="i-tabs-5"> 
    <div style="text-align:right;margin-bottom:6px;">...</div> 
    <div id="issueNoteListPlaceholder"></div> 
</div> 

następnie na DOM gotowy uczynić wywołanie ajax, że powrót częściowy rezultat widok i zastąpić zawartość zastępczy

$(document).ready(function() { 
    loadIssueNotes(); 
}); 

function loadIssueNotes() { 
    $.ajax({ 
     type: "get", 
     dataType: "html", 
     url: '<%: Url.Content("~/Controller/Action") %>', 
     data: {}, 
     success: function (response) { 
      $("#issueNoteListPlaceholder").html('').html(response); 
     } 
    }); 
} 
+0

hehe, wielkie umysły myślą podobnie. :) FYI '$ .get' wykonuje pracę w większości przypadków, chyba że wymagana jest dokładniejsza kontrola. – RPM1984

+0

hehe :) absolutnie na '$ .get'! – Lorenzo

Powiązane problemy