Gie*_*ius 2 asp.net-mvc json asp.net-mvc-3 handlebars.js
我正在查看使用hadlebars.js的示例,其中模板处理如下所示:
var source = $("#some-template").html();
var template = Handlebars.compile(source);
var data = { users: [
{username: "alan", firstName: "Alan", lastName: "Johnson", email: "alan@test.com" },
{username: "allison", firstName: "Allison", lastName: "House", email: "allison@test.com" },
{username: "ryan", firstName: "Ryan", lastName: "Carson", email: "ryan@test.com" }
]};
$("#content-placeholder").html(template(data));
Run Code Online (Sandbox Code Playgroud)
和模板是:
<tbody>
{{#users}}
<tr>
<td>{{username}}</td>
<td>{{firstName}} {{lastName}}</td>
<td>{{email}}</td>
</tr>
{{/users}}
</tbody>
Run Code Online (Sandbox Code Playgroud)
现在我有来自ASP.NET MVC的JSON结果,我想不出我应该描述我的模板的方式,因为它没有"users"属性,它看起来像:
{[{username: "alan", firstName: "Alan", lastName: "Johnson", email: "alan@test.com" }]}
Run Code Online (Sandbox Code Playgroud)
我可以以某种方式影响JsonResult输出我需要的东西,或者有一种方法来修复模板而不触及控制器代码?
在您的控制器中替换:
return Json(users);
Run Code Online (Sandbox Code Playgroud)
有:
return Json(new { users = users });
Run Code Online (Sandbox Code Playgroud)
或者,在不使用users属性引入匿名对象的情况下,您可以更改模板,如下所示:
<tbody>
{{#each this}}
<tr>
<td>{{username}}</td>
<td>{{firstName}} {{lastName}}</td>
<td>{{email}}</td>
</tr>
{{/each}}
</tbody>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1711 次 |
| 最近记录: |