[英]How do I render a collection of objects with Nustache?
我正在嘗試使用Nustache,以便可以在ASP.Net Web應用程序的后端和前端代碼之間共享渲染模板。 當我只是將一個對象傳遞給模板時,它工作正常,但我不知道如何獲取它以呈現集合。 因此,如果我有這樣的模板:
{{#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
而不是列表 唯一呈現任何內容的唯一方法是使用匿名類,但是無論如何我都無法使用命名項填充模板。 我肯定我在這里遺漏了一些相當明顯的東西,因為我認為這應該很簡單,但是文檔說“看一下代碼和測試”,但是我無法弄清楚哪個測試實際上正在處理這種情況。 有人可以為我指出正確的方向,還是提供一些示例代碼?
我可以通過以下類和控制器操作來實現此目的:
public class Person {
public string Name { get; set; }
public string Email { get; set; }
}
public ActionResult Index() {
var people = new List<Person>() {
new Person { Name = "Albert Adams", Email = "albert@email.com" },
new Person { Name = "Bob Becker", Email = "bob@email.com" },
new Person { Name = "Charles Charles", Email = "charles@email.com" }
};
ViewData["People"] = people;
ViewResult viewResult = View();
viewResult.ViewEngineCollection = new ViewEngineCollection { new NustacheViewEngine() };
return viewResult;
}
然后Index.nustache:
{{#People}}
<p>{{Name}} - {{Email}}</p>
{{/People}}
請注意,今天早上我從Nustache存儲庫中提取了最新更改。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.