2012-06-28 60 views
0

我正在使用StringTemplate版本3.1.4.6002作爲MVC項目的視圖引擎。我似乎無法訪問傳遞給模板的對象,並將其呈現在網頁上。所以基本上,我在控制器中的以下內容(C#):無法在StringTemplate上正確訪問ViewDataDictionary對象

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 Version4。在項目上,我參考了Antlr3.Runtime,Antlr3.Runtime.Debug和Antlr3.StringTemplate dll。另外,我在訪問簡單的字符串對象時沒有問題。我已使用here中的教程項目。如果需要,我可以提供更多細節。

回答

1

計數和標籤字段是公開的嗎?如果它們是獲取者,它們是公共的嗎?

+0

非常感謝我指出了正確的方向。我將匿名類型layer1,layer2和layer3轉換爲具有內部訪問權限和公共字段的對象,現在我可以看到網頁上的值!順便說一下,我只是發現了StringTemplate,而且我真的很喜歡它的簡單性。我們在工作中一直在使用XSLT,並且我記得有一個很大的學習曲線。在我使用它時,我可能會在未來發布新的問題。保持了出色的工作! –

+0

很好聽!謝謝! –