単純なJSONオブジェクトグラフがあります。Nustache
(Nustache.Core
およびNustache.Mvc
)を使用してASP.NET MVC 3サイトでMustacheテンプレートを使用してレンダリングしようとしています。Nustacheを使用してMustacheテンプレートで完全なJSONオブジェクトグラフをレンダリングできない
マイオブジェクトグラフは、フランチャイズの単純なリストを表し(アクティブおよびオペレーティング場合)それぞれが1つまたは複数の所有者を持っており、それぞれの所有者はまず、最終、中東、接尾辞、タイトルと名前のオブジェクトが含まれています
{
"Count": 39,
"Franchises": [
{
"Id": "81e5e91b-37eb-4f60-ac5f-d2d9a2c1b8fc",
"Name": "My Franchise, Inc.",
"Number": "001",
"Owners": [],
"Status": {
"Id": 4,
"Name": "Terminated"
}
},
{
"Id": "98887526-5b1d-4db9-9ddb-2be2cd6af957",
"Name": "My Other Franchise, Inc.",
"Number": "0002",
"Owners": [
{
"Id": "cffd8de3-aa12-4dbf-b129-0886aea7d1b1",
"Name": {
"FirstName": "James",
"LastName": "Drew",
"MiddleName": null,
"Suffix": null,
"Title": null
}
}
],
"Status": {
"Id": 2,
"Name": "Operating"
}
}.
...
]
}
私のMVCアクションメソッドは非常に簡単です。サービスからJSONをつかむためにWebClient
を使用してJavaScriptSerializer
辞書にJSONを変換すると、ビューに渡していること:
public ActionResult Index()
{
var json = null as String;
var serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
using (var client = new System.Net.WebClient())
{
json = client.DownloadString(@"http://my.service.com/franchises");
}
return PartialView(serializer.Deserialize<Dictionary<string, object>>(json));
}
そして、ここに私の基本的な口ひげのテンプレートです:
<ul>
{{#Franchises}}
<li><a id="{{Id}}" href="/franchises/details/{{Id}}">{{Number}}</a>
{{#Owners}}
TODO: Print Name Here
{{/Owners}}
</li>
{{/Franchises}}
</ul>
問題は私が持っているそれぞれの所有者の名前を印刷している。テンプレートは所有者の名前を除いてすべてをレンダリングし、私は運がないいくつかのテンプレートのバリエーションを試しました。
{{Name}}
各所有者オブジェクトのプリントアウトSystem.Collections.Generic.Dictionary'2[System.String,System.Object]
{{#Name}}{{FirstName}} {{LastName}}{{/Name}}
又は{{FirstName}} {{LastName}}
とテンプレートの両方の印刷を指す{{> Name}}
ブランク{{#Name}}{{FirstName}} {{LastName}}{{/Name}}
印刷ブランク:で
TODO: Print Name Here
を交換{{Name.FirstName}}
または{{Name/FirstName}}
ブランクを印刷
私は他に何を試していいのですか?オブジェクトグラフをナビゲートすることは、これほど難しいことではありません。誰かが私が間違っていることを教えてもらえますか?
こんにちは、私はこれを試して、あなたの2番目の方法は間違いなく動作します。 http://jsgroomer.com/4s1gJMK多分問題はヌスタチェにありますか? – Gazler
はい、私はNustacheが問題であるという結論に達しました.Mustacheの他の実装に比べて非常に限られているようです。あなたが答えとして提出すれば、私は受け入れます。ありがとう。 – sellmeadog