【问题标题】:bind c# list to jQuery template将 c# 列表绑定到 jQuery 模板
【发布时间】:2012-07-09 22:21:07
【问题描述】:

将 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>

还有更好的方法吗?

【问题讨论】:

    标签: jquery asp.net-mvc webforms jquery-templates


    【解决方案1】:

    不确定您的服务器端架构是什么样的,但使用类似于本文所示的技术对 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>
    

    【讨论】:

      【解决方案2】:

      使用 ASMX 网络服务或 ASPX 页面中的 WebMethod,.NET 可以很好地将您的 List&lt;Object&gt; 序列化为 JavaScript 对象数组:

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

      更多信息请参见https://stackoverflow.com/a/11314818/622129

      【讨论】:

        猜你喜欢
        • 2022-06-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多