![](/img/trans.png)
[英]Javascript: Associative Array to Return Information Relating to an Object
[英]ASP MVC AJAX return object and access in JavaScript as an Associative Array
我试图通过使用对C#控制器的AJAX请求来了解ASP MVC。 我可以从AJAX请求中调用控制器。 但是,我正在努力返回想要的结果。
总的来说,我试图从数据库中获取一些数据,并将其作为数组返回给JavaScript。 如果在JavaScript中我可以使用关联数组以诸如array["key"]
类的格式访问数据,那将是奇妙的。
但是,这就是我在AJAX请求中遇到的问题,最初,我是从AJAX调用控制器的。
$.ajax({
type: "POST",
url: "/booking/getParks",
dataType: "JSON",
async: false,
success: function (data) {
alert(data.data);
}
});
如下所示,这在我的预订控制器中调用了我非常简单的功能。
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult getParks(string stylesheet)
{
var parks = Database.Open("SQLServerConnectionString").Query("SELECT * FROM Park");
return Json(new { data = parks });
}
现在,当我在JavaScript AJAX成功函数中发出警报时,可以看到我调用了data.data
,这将输出以下内容:
现在,如果我要引用data.data[0]
,它将输出[object Object]
,如果我要进一步引用data.data[0]["id"]
,在我的情况下,我希望输出为1相反,我收到了undefined
。
现在,我猜想这与我返回C#动态代码的方式有关。
但是,我假设我将对象错误地返回给AJAX。
如何返回这些值,以使其成为JavaScript中的关联数组? 甚至还有一种我可以接收数据并将其转换为JavaScript的方法...
谢谢。
编辑:
alert(JSON.stringify(data));
返回:
SQL Server以DataTable格式返回数据,您必须先将其转换为JSON或List,然后再返回到Script。
类似于:(使用Nuget中提供的Newtonsoft Json包)
string JSONresult;
JSONresult = JsonConvert.SerializeObject(parks);
return JSONresult;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.