我正在尝试返回JSON结果(数组);

如果我手动执行,它会起作用

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

但是我在传递时遇到了渲染问题:

在 View 上:
 resources:@Model.Resources

在 Controller 上
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

有什么想法我要去哪里吗?

最佳答案

它应该是 :

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()。

关于jquery - ASP.NET MVC返回Json结果吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16836428/

10-13 07:47