ASP.NET MVC JSONRESULT e manubrio, nessuna presa?
-
12-11-2019 - |
Domanda
Sto guardando l'esempio dell'uso di hadlebars.js, dove sembra l'elaborazione dei modelli:
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));
e il modello è:
<tbody>
{{#users}}
<tr>
<td>{{username}}</td>
<td>{{firstName}} {{lastName}}</td>
<td>{{email}}</td>
</tr>
{{/users}}
</tbody>
Ora ho il risultato JSON da ASP.NET MVC e non riesco a pensare al modo in cui dovrei descrivere il mio modello, perché non ha la proprietà "utenti", sembra:
{[{username: "alan", firstName: "Alan", lastName: "Johnson", email: "alan@test.com" }]}
Posso in qualche modo influire su JsonResult per produrre ciò di cui ho bisogno o c'è un modo per correggere il modello senza toccare il codice del controller?
Soluzione
Nel tuo controller sostituire:
return Json(users);
insieme a:
return Json(new { users = users });
Altri suggerimenti
In alternativa, senza introdurre l'oggetto anonimo con il users
Proprietà, puoi cambiare il tuo modello in questo modo:
<tbody>
{{#each this}}
<tr>
<td>{{username}}</td>
<td>{{firstName}} {{lastName}}</td>
<td>{{email}}</td>
</tr>
{{/each}}
</tbody>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow