我在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方法而不是看到成功警报我看到错误警报。
答案 0 :(得分:2)
试试这个:
success: function (result) {alert(JSON.stringify(result)); }
根据您在下面的评论中发布的错误,显示字典不可序列化。尝试按照其他答案中的说明设置AllowGet
。如果不起作用,则需要将Dictionary转换为可序列化的其他对象。或者您可以按照此操作在控制器中将Dictionary序列化为json。
答案 1 :(得分:1)
如果你没有获得价值,你应该添加JsonBehavious。
返回Json(returnValue,JsonRequestBehavior.AllowGet);
答案 2 :(得分:1)
试试这段代码:
$("#myTextarea").keypress(function(){
window.localStorage.setItem("textAreaContent", $(this).val());
});