У меня есть простой граф объектов JSON, который я пытаюсь визуализировать с помощью шаблона Mustache на сайте ASP.NET MVC 3, используя Nustache
(Nustache.Core
и Nustache.Mvc
).
Мой граф объектов представляет собой простой список франшиз, каждый из которых имеет одного или нескольких владельцев (если они активны и работают), и каждый владелец содержит объект Name с именами First, Last, Middle, Suffix, Title:
{
"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 очень прост. Использует WebClient
для извлечения JSON из службы и 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>
У меня проблема с печатью имени каждого владельца. Шаблон отображает все, кроме имени владельца, и я попробовал несколько вариантов шаблона без удачи; замена TODO: Print Name Here
на:
{{Name}}
распечатывает System.Collections.Generic.Dictionary'2[System.String,System.Object]
для каждого объекта владельца
{{#Name}}{{FirstName}} {{LastName}}{{/Name}}
печать пустая
{{> Name}}
, который указывает на шаблон с {{#Name}}{{FirstName}} {{LastName}}{{/Name}}
или {{FirstName}} {{LastName}}
, оба печатаются пустыми
Обе {{Name.FirstName}}
или {{Name/FirstName}}
пробел для печати
Я не знаю, что еще попробовать. Не может быть так сложно перемещаться по графу объектов. Может кто-нибудь, пожалуйста, дайте мне знать, что я делаю не так?