Rav*_*ddy 9 javascript ajax asp.net-mvc jquery json
我正在开发 asp.net mvc 应用程序,Java 脚本将每 3 秒调用一次控制器,它应该返回 json 对象列表。我需要在表中显示对象列表。在这里,我得到 [object Object]。我们应该反序列化该对象,如果是,那么如何反序列化它们。
下面是我的java脚本代码
<script>
var fun = set_Interval(my_Timer, 3000);
function my_Timer() {
$.ajax({
url: '@Url.Action("FirstAjax", "Home")',
//data: '{param : "value"}',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: successFunc,
error: errorFunc
});
function successFunc(response) {
alert(response);
}
function errorFunc() {
alert('error');
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
下面是控制器
public JsonResult FirstAjax()
{
var listt = AlgoLegsClass.DataGridAlgos;
JavaScriptSerializer js = new JavaScriptSerializer();
string ss = js.Serialize(listt);
return Json(ss, JsonRequestBehavior.AllowGet);
}
Run Code Online (Sandbox Code Playgroud)
输出 - 每 3 秒后计时器调用控制器并返回对象列表。在警报框中,它显示为“参数名称”:“值”。我如何获取这些值,因为我需要将此列表附加到表中
由于您在 ajax 选项中指定dataType: "json",jQuery 已经自动将 JSON 字符串反序列化回 JavaScript 对象。
您所看到的正是alert()JavaScript 对象/数组在尝试将其可视化为文本时的默认情况。
尝试
alert(JSON.stringify(response));
Run Code Online (Sandbox Code Playgroud)
反而。这将打印对象的一个版本,该版本被序列化回 JSON 字符串,从而使其更易于阅读。
或者,您可以在“网络”选项卡(在浏览器的开发人员工具中)中查看 ajax 调用条目的“响应”部分。
另外,如果您使用 JsonResult (即return Json...),则无需事先序列化对象 - MVC 会为您完成此操作。所以你很可能会得到双连载的废话。
简单地
return Json(listt, JsonRequestBehavior.AllowGet);
Run Code Online (Sandbox Code Playgroud)
应该没问题。
| 归档时间: |
|
| 查看次数: |
3318 次 |
| 最近记录: |