返回部分视图作为JsonResult

时间:2009-08-25 20:59:00

标签: asp.net-mvc json partial-views

我有一个局部视图,它返回一大堆列表项,这些列表项通过AJAX调用附加到无序列表中。一切正常。

但是,一旦我从AJAX调用中收到HTML,我希望能够通过JQuery在每个列表项上设置一些属性。为了做到这一点,我假设我需要将这个AJAX回调的结果作为JsonResult而不是ActionResult接收。不幸的是,我想继续使用我用来呈现HTML的ASCX,因为它包含了相当多的格式化数据。

是否有可能呈现局部视图,然后将其转换为AJAX客户端的JsonResult,或者我应该考虑采用不同的方法吗?

非常感谢任何建议。

谢谢!

1 个答案:

答案 0 :(得分:4)

你实际上并不需要JsonResult。一个部分是一个ActionResult检索一些xml / html对吧?然后你可以使用jquery来解析它并像这样查询它:

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
}

此外,如果您的结果只是一堆li,那么您可以这样做:

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

这可以通过链接简化,但我使它更冗长,因此更容易理解