繁体   English   中英

ASP MVC AJAX返回对象,并在JavaScript中作为关联数组进行访问

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM