web-dev-qa-db-ja.com

ASP.NET MVCがJsonの結果を返しますか?

JSON結果(配列)を返そうとしています。

手動で行うと動作します

    resources:[
{
    name: 'Resource 1',
    id: 1,
    color:'red'
},{
    name: 'Resource 2',
    id: 2
}],

しかし、私はそれを渡すことでレンダリングに問題があります:

ビューで:

 resources:@Model.Resources

コントローラー上で

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 };
        }

モデルで

public JsonResult Resources { get; set; }

しかし、HTMLでレンダリングされたものを見ると:

resources:System.Web.Mvc.JsonResult

私が間違っているつもりはありますか?

34
D-W

そのはず :

public async Task<ActionResult> GetSomeJsonData()
{
    var model = // ... get data or build model etc.

    return Json(new { Data = model }, JsonRequestBehavior.AllowGet); 
}

またはもっと簡単に:

return Json(model, JsonRequestBehavior.AllowGet); 

動作しない別のActionResultからGetResources()を呼び出していることに気付きました。 JSONを取得したい場合は、ajaxからGetResources()を直接呼び出す必要があります...

77
Steve