2012-06-28 4 views
0

Я играю с StringTemplate версии 3.1.4.6002 в качестве механизма просмотра проекта MVC. Кажется, я не могу получить доступ к объекту, передаваемому шаблону, и отобразить его на веб-странице. Так в основном, у меня есть следующие в контроллере (в C#):Не удается получить доступ к объекту ViewDataDictionary должным образом на StringTemplate

var layer1 = new { count = "1", label = "Description" }; 
var layer2 = new { count = "2", label = "Transcription" }; 
ViewData["layers"] = new object[] {layer1,layer2}; 

На вид файла test.st, у меня есть:

$layers:{ 
    $it.count$ 
    $it.label$ 
}$ 

Шаблон не отображает ничего на веб-странице , но если я делаю это на test.st:

$layers$ 

отображает объект как:

{ count=1, label=Description } { count=2, label=Transcription } 

, который выглядит как строка. Итак, как я могу получить доступ к счету и метке независимо? Я уже много гугл и не могу найти ничего, что могло бы решить мою проблему.

Кстати, я использую Visual Studio V10 и .NET Framework версии4. В проекте у меня есть ссылки на Antlr3.Runtime, Antlr3.Runtime.Debug и Antlr3.StringTemplate dlls. Кроме того, у меня нет проблем с доступом к простым строковым объектам. Я использовал учебный проект в here. При необходимости я могу предоставить более подробную информацию.

ответ

1

Являются ли поля count и label публичными или, если они являются геттерами, являются ли они общедоступными?

+0

Большое спасибо за указание на правильное направление. Я преобразовал анонимные типы layer1, layer2 и layer3 в объекты с внутренним доступом и с общедоступными полями, и теперь я могу видеть значения на веб-странице! Кстати, я просто открываю StringTemplate, и я действительно продаю его простоту. Мы используем XSLT на работе, и у меня есть обширная кривая обучения, которую я помню. Я могу публиковать новые вопросы в будущем, когда я его использую. Следите за отличной работой! –

+0

Замечательно! благодаря! –

 Смежные вопросы

  • Нет связанных вопросов^_^