将Json数据返回到Ajax调用

时间:2017-05-22 23:16:48

标签: javascript jquery json ajax asp.net-mvc

我在MVC中有一个方法,我发布它,我需要将一些数据返回到进程。 这是我发布的MVC方法,返回Value是一个json数据。

[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);
}

这是我成功运行MVC方法的AJax调用。

$('#MyForm').submit(function (e) {
    debugger;
    $.ajax({
        url: "/home/GetCalculateAmortizationSchedule",
        type: "POST",
        dataType: "json",
        contentType: "application/json; charset=utf-8",                
        success: function (result) {
            alert("success");
        },
        error: function (result) {
            alert("error");
        }
    });
    e.preventDefault();
});

我的问题是如何从方法中捕获返回值?当我在返回Json(returnValue)之后运行它时,该值不返回Ajax方法而不是看到成功警报我看到错误警报。

3 个答案:

答案 0 :(得分:2)

试试这个:

     success: function (result) {alert(JSON.stringify(result)); }

根据您在下面的评论中发布的错误,显示字典不可序列化。尝试按照其他答案中的说明设置AllowGet。如果不起作用,则需要将Dictionary转换为可序列化的其他对象。或者您可以按照此操作在控制器中将Dictionary序列化为json。

How do I convert a dictionary to a JSON String in C#?

答案 1 :(得分:1)

如果你没有获得价值,你应该添加JsonBehavious。

返回Json(returnValue,JsonRequestBehavior.AllowGet);

答案 2 :(得分:1)

试试这段代码:

$("#myTextarea").keypress(function(){
    window.localStorage.setItem("textAreaContent", $(this).val());
});