Javascript 将Json数据返回到Ajax调用
我在MVC中有一个发布到它的方法,我需要将一些数据返回到进程。 这是我发布到的MVC方法,返回值是json数据Javascript 将Json数据返回到Ajax调用,javascript,jquery,json,ajax,asp.net-mvc,Javascript,Jquery,Json,Ajax,Asp.net Mvc,我在MVC中有一个发布到它的方法,我需要将一些数据返回到进程。 这是我发布到的MVC方法,返回值是json数据 [HttpPost] public JsonResult GetCalculateAmortizationSchedule() { var data = ... var httpClient = new HttpClient(); var response = httpClient.PostAsJsonAsync("http://localhost:62815/
[HttpPost]
public JsonResult GetCalculateAmortizationSchedule()
{
var data = ...
var httpClient = new HttpClient();
var response = httpClient.PostAsJsonAsync("http://localhost:62815/v1/APR/CalculateAmortizationSchedule", data).Result;
var returnValue = response.Content.ReadAsAsync<Dictionary<int, AmItem>>().Result;
return Json(returnValue);
}
我的问题是如何从方法中获取返回值?当我在returnjson(returnValue)之后运行这个函数时,该值并没有返回到Ajax方法,而是看到了错误警报,而没有看到成功警报 如果没有获得值,则应添加JsonBehavious 返回Json(returnValue,JsonRequestBehavior.AllowGet) 试试这个:
success: function (result) {alert(JSON.stringify(result)); }
从您在下面的评论中发布的错误来看,字典似乎不可序列化。尝试设置AllowGet
,如其他答案中所述。如果不起作用,则需要将字典转换为其他可序列化的对象。或者您也可以按照此操作在控制器中将字典序列化为json
试试这段代码:
return Json(returnValues, JsonRequestBehavior.AllowGet);
尝试向结果发出警报,以查看返回的数据。应该有一些消息可以帮助您进行调试,因此,不要发出警报(“错误”),而是通过开发者工具控制台或网络选项卡发出警报(结果),向您显示正在发生的情况,这应该是您的第一个调用端口debugging@garek007是[object object]使用
console.log()
ok将您的错误更改为此错误:(xhr,状态,错误)然后,在函数do console.log(xhr)、console.log(status)、console.log(error)中,我得到了一个错误:“System.Collections.Generic.Dictionary`2[[System.Int32,mscorlib,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089]不支持字典的序列化/反序列化,键必须是字符串或对象。”。
return Json(returnValues, JsonRequestBehavior.AllowGet);