jquery
  • asp.net-mvc
  • webforms
  • jquery-templates
  • 2012-07-10 69 views 1 likes 
    1

    将C#List绑定到jQuery模板的最佳方式是什么? 我迄今发现的唯一方法是如下:将c#列表绑定到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> 
    

    什么更好的办法来做到这一点?

    回答

    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,如果没有跨域调用,则不需要该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> 
    
    0

    使用ASMX web服务,或WebMethod在你的ASPX页面。NET很好的序列化到List<Object>一个JavaScript对象数组:

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

    了解更多信息

    https://stackoverflow.com/a/11314818/622129
    相关问题