2009-08-25 95 views
1

我有一个局部视图,它返回通过AJAX调用被附加到无序列表上的列表项的HTML块。这一切工作正常。作为JsonResult返回部分视图

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

是否可以呈现一个局部视图,然后将其转换为AJAX客户端的JsonResult,或者是否存在我应该考虑的另一种方法?

任何意见是非常感谢。

谢谢!

回答

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

这可以用简化链接,但我做了一点更详细,所以更容易理解