Nustacheを使用して、ASP.Net Webアプリケーションでバックエンドとフロントエンドのコードの間でレンダリングテンプレートを共有できるようにしようとしています。オブジェクトをテンプレートに渡すだけでうまくいきますが、コレクションをレンダリングする方法を理解できません。Nustacheでオブジェクトのコレクションをレンダリングするにはどうすればよいですか?
{{#RenderItems}}
<th data-warning="{{WarningLevel}}" data-limit="{{LimitLevel}}">{{TotalHours}}</th>
{{/RenderItems}}
は、その後、私はオブジェクトのコレクションを渡すとth
要素のセットを取得したい:私はこのようなテンプレートを持っているのであれば。
物事私が試した:
- は、プロパティ
WarningLevel
、LimitLevel
とTotalHours
を持つクラスを作成List
にオブジェクトを追加し、その直接渡す:Nustache.Core.Render.FileToString(System.Web.HttpContext.Current.Server.MapPath("my.template"), ListOfObjects)
- を同じことをやって、作成を除きます匿名クラス:
Nustache.Core.Render.FileToString(System.Web.HttpContext.Current.Server.MapPath("my.template"), new { RenderItems = ListOfObjects})
- 同じオブジェクトを含む
Dictionary
を使用するリストの代わりに - 辞書の辞書なので、各項目はそれ自体が上記のプロパティを持つ辞書です
匿名のクラスを使用すると、何かをレンダリングする唯一の方法ですが、テンプレートを取り込むことができません私が何をしていても名前のついたアイテムがあります。私はこれが簡単であるべきだと仮定して、ここでかなり明白なものがないと確信していますが、ドキュメンテーションは「コードとテストを見てください」と言っていますが、実際にこのシナリオを扱うテストはできません。誰かが正しい方向に私を指すことができる、またはいくつかの例のコードを提供できますか?
ありがとう、標準ASP.Netに変換するのは簡単でしょうか?私は 'ViewData'オブジェクトを作成しようと思うでしょうか? – robertc
私はそれを調べなければならないでしょう。私はMVCでNustacheを使用したことがありますが、ViewDataのようなMVC専用の機能にどのように依存しているかはわかりません。 – gram
私は以下のような辞書オブジェクトを定義しました: 'var RenderItems = new Dictionary>();'そしてキーで私のリストを渡すと、それは働いた:) –
robertc