C# 如何将预先格式化的HTML元素从WebMethod发送到jQuery

C# 如何将预先格式化的HTML元素从WebMethod发送到jQuery,c#,javascript,jquery,asp.net,sql,C#,Javascript,Jquery,Asp.net,Sql,这个标题解释了我想做什么。 原因是我试图在我的ASP.NETC#网站上实现无限滚动。我以前用ListView控件实现了惰性滚动的“效果”,但这是一个肮脏的“慢”把戏,使用了DataPager和几个HiddenFields 我想将一个完全预格式化的HTML元素从WebMethod发送到jQuery,这样我就可以将它附加到容器上 实际上,我需要在WebMethod中渲染的是容器中的一组对象,这些对象与Facebook墙类似。我之前拥有的是嵌套在另一个列表视图中的列表视图(B)。单个列表视图中的每个都

这个标题解释了我想做什么。 原因是我试图在我的ASP.NETC#网站上实现无限滚动。我以前用
ListView
控件实现了惰性滚动的“效果”,但这是一个肮脏的“慢”把戏,使用了
DataPager
和几个
HiddenFields

我想将一个完全预格式化的HTML元素从
WebMethod
发送到
jQuery
,这样我就可以将它附加到容器

实际上,我需要在
WebMethod
中渲染的是容器
中的一组对象,这些对象与Facebook墙类似。我之前拥有的是嵌套在另一个
列表视图中的
列表视图
(B)。单个列表视图中的每个
都有另一个
列表视图的多个
列表视图项
。(A) 表示墙柱和(B)绑定到(A)主键的注释

不管怎样,我是从正确的角度看待这个问题,还是应该想出其他方法来解决这个问题?请分享你的想法


谢谢。

您可以从webmethod返回一个包含html的字符串,然后通过“success”函数将其直接输入到页面上的html元素中。注意:我认为这是'html()'元素,或者您可以使用.append(text)

使用JQuery

$(document).ready(function() {
  // Add the page method call as an onclick handler for the div.
  $("#Result").click(function() {
    $.ajax({
      type: "POST",
      url: "Default.aspx/GetHTMLFormatted",
      data: "{}",
      success: function(msg) {
        // Replace the div's content with the page method's return.
        $("#Result").html(msg.d); // or .append(msg.d);
      }
    });
  });
});

但更好的方法是返回JSON结构并使用模板库来生成html结构。请参见

FYI:jQuery模板不再存在。JSRender是替代品:.tmpl()不再开发。基于render.js的新(jquery ui)插件将很快推出。还有其他模板插件(mustache、pure等)正是我需要的,非常好的信息。谢谢分享!;)-编辑:我也在寻找这样做的方法,但不知道StringBuilder类。我想这也会让事情变得更快更聪明。