在asp.net-mvc中,我如何使用javascript而不是服务器端C#复制创建它?

时间:2014-04-21 00:11:33

标签: jquery ajax arrays asp.net-mvc stringify

我有一个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");

你认为为什么这些不相同会有什么不妥之处吗?

1 个答案:

答案 0 :(得分:1)

您正在通过解析响应中获得的JSON字符串创建的对象创建JSON字符串。由于SetupApplications函数在代码的第一个版本中没有采用JSON字符串,因此它在第二个版本中也不应该这样做。只需将对象传递给函数,而不再将其转换为JSON:

$.post("/MyController/MyAction", function (data) {
  SetupApplications(data.Apps);
}, "json");