2009-08-25 11 views
1

J'ai une vue partielle qui retourne un morceau HTML d'éléments de liste qui est ajouté à une liste non ordonnée via un appel AJAX. Tout cela fonctionne très bien.Retour Vue partielle en tant que JsonResult

Cependant, une fois que je reçois le retour HTML de l'appel AJAX, j'aimerais pouvoir définir des propriétés sur chacun des éléments de la liste via JQuery. Pour ce faire, je suppose que j'ai besoin de recevoir les résultats de cet appel AJAX en tant que JsonResult plutôt qu'un ActionResult. Malheureusement, je veux continuer à utiliser l'ASCX que j'utilise pour rendre le HTML, car il contient un peu de données de formatage.

Est-il possible de rendre une vue partielle, puis de la convertir en JsonResult pour le client AJAX ou y a-t-il une approche différente que je devrais envisager?

Tout conseil est très apprécié.

Merci!

Répondre

4

Vous n'avez pas besoin d'un JsonResult. Un partiel qui est un ActionResult récupère un peu de xml/html? Ensuite, vous pouvez utiliser jquery pour analyser et interroger comme ceci:

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 
} 

Aussi, si le résultat est juste un tas de li s vous pouvez alors faire ceci:

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

Cela peut être simplifié avec chaînage mais je l'ai fait un peu plus verbeux donc c'est plus facile à comprendre

Questions connexes