1

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>

それを行うためのより良い方法はありますか?

4

2 に答える 2

0

サーバー側のアーキテクチャがどのように見えるかはわかりませんが、この記事に示すような手法を使用して、Webサービス(WCFなど)またはHttpHandlerに対してjQueryajax呼び出しを行う方がクリーンです。

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 に答える
0

ASMX Webサービスを使用するかWebMethod、ASPXページで、.NETList<Object>はオブジェクトのJavaScript配列に適切にシリアル化します。

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

詳細については、 https://stackoverflow.com/a/11314818/622129を参照してください

于 2012-07-10T16:01:56.833 に答える