从MVC控制器输出正确的Json

时间:2011-03-31 23:42:29

标签: javascript asp.net-mvc-3 extjs

根据我的理解,Ext JS表单面板需要以下输入:

{
    'success': true,
    'data': {
        'name-field': 'Boogie',
        'number-field': '789789',
        'application-field': 'CE',
        'brand-field': 'GE', 
        'clientreport-field': '1',
        'moneyreport-field': '1',
        'billingreport-field': '1',
        'auditreport-field':'1'
    }
}";

但是下面的ASP.NET MVC控制器:

public ActionResult FormLoader(string id)
{
    var result = repoS.GetClientSetting(id);

    return Json(new {success = true, data = result}, JsonRequestBehavior.AllowGet);
}

返回以下输出:

{
    "success": true,
    "data": [
        {
            "ID": 3,
            "Name": "Forngap",
            "Number": "lipo-900", 
            "Application": "EA",
            "Brand": "6.7.8",
            "ClientReport": false,
            "MoneyReport": false,
            "BillingReport": false,
            "AuditReport": false,
            "Login": "eeporp",
            "Password": "ungah",
            "Active": false
        }
    ]
}

“data”数组周围有一组额外的“[]”。上面的控制器可以返回Ext JS表单想要的内容吗?或者除了Json之外还需要什么?谢谢!

1 个答案:

答案 0 :(得分:0)

它接缝:

var result = repoS.GetClientSetting(id);

返回包含1个必需元素的数组,因此请尝试仅将第一个元素传递给data

return Json(new {success = true, data = result [1]} ...

不确定语法是否正确(不适用于ASP.NET)

或加载数据以形成发送数组数据的第一个元素

....getValues( data[0] );

然而,修复输出将是更好的方式