我有一个asp.net-mvc页面,在我的javascript视图中,我有这个完美的代码:
MyView.aspx
<script type="text/javascript">
var apps = <%= new JavaScriptSerializer().Serialize(Model.Apps) %>;
SetupApplications(apps);
</script>
(Apps是一个字符串数组)。
我现在需要将其更改为从ajax方法调用。我尝试了一些东西,但似乎都没有用。我从服务器端控制器操作传回一个字符串数组,如下所示:
return Json(new {
Apps = GetAppsStringArray()
});
在客户端javascript回调我调用相同的方法:
$.post("/MyController/MyAction", function (data) {
SetupApplications(JSON.stringify(data.Apps) }
, "json");
你认为为什么这些不相同会有什么不妥之处吗?
答案 0 :(得分:1)
您正在通过解析响应中获得的JSON字符串创建的对象创建JSON字符串。由于SetupApplications
函数在代码的第一个版本中没有采用JSON字符串,因此它在第二个版本中也不应该这样做。只需将对象传递给函数,而不再将其转换为JSON:
$.post("/MyController/MyAction", function (data) {
SetupApplications(data.Apps);
}, "json");