将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>
有更好的方法吗?
答案 0 :(得分: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>
答案 1 :(得分:0)
使用ASMX Web服务或ASPX页面中的WebMethod
,.NET很好地将您的List<Object>
序列化为JavaScript对象数组:
[{Prop1: value, Prop2: value}, {Prop1: value2, Prop2: value2}]