J'essaie de renvoyer un résultat JSON (tableau);
Si je le fais manuellement cela fonctionne
resources:[
{
name: 'Resource 1',
id: 1,
color:'red'
},{
name: 'Resource 2',
id: 2
}],
mais j'ai du mal à rendre en le passant:
Sur la vue:
resources:@Model.Resources
Qui sur le contrôleur
public ActionResult Index()
{
...
var model = new Display();
model.Resources = GetResources();
}
public JsonResult GetResources()
{
var model = new Models.ScheduledResource()
{
id = "1",
name = "Resource"
};
return new JsonResult() { Data = model, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
}
sur le modèle
public JsonResult Resources { get; set; }
Mais en regardant ce qui est rendu en HTML:
resources:System.Web.Mvc.JsonResult
Des idées où je vais mal?
CA devrait etre :
public async Task<ActionResult> GetSomeJsonData()
{
var model = // ... get data or build model etc.
return Json(new { Data = model }, JsonRequestBehavior.AllowGet);
}
ou plus simplement:
return Json(model, JsonRequestBehavior.AllowGet);
J'ai remarqué que vous appelez GetResources () à partir d'un autre ActionResult qui ne fonctionnera pas. Si vous souhaitez récupérer JSON, appelez directement GetResources () depuis ajax ...