2009-08-25 12 views
1

Ich habe eine Teilansicht, die einen HTML-Chunk von Listenelementen zurückgibt, der über einen AJAX-Aufruf an eine ungeordnete Liste angehängt wird. Das alles funktioniert gut.Teilansicht als JsonResult zurückgeben

Sobald ich aber den HTML-Code vom AJAX-Aufruf empfangen habe, möchte ich in der Lage sein, über JQuery einige Eigenschaften für jeden Listeneintrag festzulegen. Um dies zu tun, gehe ich davon aus, dass ich die Ergebnisse dieses AJAX-Rückrufs als JsonResult anstatt als ActionResult erhalten muss. Unglücklicherweise möchte ich weiterhin das ASCX verwenden, mit dem ich den HTML-Code rendere, da er ziemlich viele Formatierungsdaten enthält.

Ist es möglich, eine Teilansicht zu rendern und dann in ein JsonResult für den AJAX-Client zu konvertieren oder gibt es einen anderen Ansatz, den ich in Betracht ziehen sollte?

Jeder Rat wird sehr geschätzt.

Danke!

Antwort

4

Sie brauchen eigentlich kein JsonResult. Ein partielles, das ein ActionResult ist, ruft einige xml/html richtig ab? Dann können Sie jQuery verwenden, um sie zu analysieren und es wie folgt abfragen:

function success(result) { 
    var html = $(result); //this creates a jquery object out of your result html 
    $("ul li", html); //this gets you all the list items in context of the resulting html 
} 

Auch wenn Ihr Ergebnis ist nur ein Haufen von li s, dann können Sie dies tun:

function success(result) { 
    var lis = $(result); 
    lis.each(function() { $(this).append(" testing"); }); 
    $("#yourUl").append(lis); 
} 

Dies vereinfacht werden kann mit Verkettung, aber ich habe es ein wenig mehr wortreich, so dass es leichter zu verstehen ist

Verwandte Themen