ASP.NET MVC返回Json结果?

D-W*_*D-W 34 asp.net-mvc jquery json

我试图返回一个json结果(数组); 如果我手动执行它可以工作

    resources:[
{
    name: 'Resource 1',
    id: 1,
    color:'red'
},{
    name: 'Resource 2',
    id: 2
}],
Run Code Online (Sandbox Code Playgroud)

但我通过传递它有渲染问题:

在视图上:

 resources:@Model.Resources
Run Code Online (Sandbox Code Playgroud)

哪个在控制器上

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 };
        }
Run Code Online (Sandbox Code Playgroud)

在模型上

public JsonResult Resources { get; set; }
Run Code Online (Sandbox Code Playgroud)

但看看在html中呈现的是什么:

resources:System.Web.Mvc.JsonResult
Run Code Online (Sandbox Code Playgroud)

我出错了什么想法?

Ste*_*eve 78

它应该是 :

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

    return Json(new { Data = model }, JsonRequestBehavior.AllowGet); 
}
Run Code Online (Sandbox Code Playgroud)

或更简单地说:

return Json(model, JsonRequestBehavior.AllowGet); 
Run Code Online (Sandbox Code Playgroud)

我注意到你从另一个不能工作的ActionResult调用GetResources().如果你想要获得JSON,你应该直接从ajax调用GetResources()...