1

将 C# List 绑定到 jQuery 模板的最佳方法是什么?到目前为止,我发现的唯一方法如下:

JavaScriptSerializer serializer = new JavaScriptSerializer();
var jsonData  = serializer.Serialize(ListOfObjects);
Response.Write("<script type='text/javascript'>var jsonData = " + jsonData  + ";</script>");

在页面上:

$("div").html($("#myTemplate").tmpl(jsonData ));

<script id="myTemplate" type="text/x-jquery-tmpl">
  ${}
</script>

有什么更好的方法吗?

4

2 回答 2

0

使用 ASMX 网络服务,或WebMethod在您的 ASPX 页面中,.NET 很好地将您序列List<Object>化为 JavaScript 对象数组:

[{Prop1: value, Prop2: value}, {Prop1: value2, Prop2: value2}]

有关更多信息,请参阅https://stackoverflow.com/a/11314818/622129

于 2012-07-10T16:01:56.833 回答
0

不确定您的服务器端架构是什么样的,但是使用类似于本文中显示的技术对Web 服务(WCF 或其他)或HttpHandler进行 jQuery ajax 调用会更简洁:

http://www.diplo.co.uk/blog/2011/3/1/using-jquery-templates-to-bind-to-json-data.aspx

此示例使用 JSONP,如果没有跨域调用,则不需要它。

<script id="flickrTemplate" type="text/x-jquery-tmpl">
    <li>${title}</li>
</script>

<script type="text/javascript">
    $(document).ready(function()
    {
        $.ajax({
            url: "http://api.flickr.com/services/feeds/photos_public.gne",
            data: "format=json",
            jsonp: "jsoncallback",
            dataType: "jsonp",
            success: function(data)
            {
                $("#flickrTemplate").tmpl(data.items).appendTo("#placeholder");
            }
        });
    });
</script>

<ul id="placeholder"></ul>
于 2012-07-10T15:47:56.300 回答