首页 > 解决方案 > 如何使用 GET 请求将 JSON 数组传递给 Controller 方法?

问题描述

我有一个这样的控制器方法:

[GET]
public ActionResult GetFailureInfo(List<FailureInfoModel> failureInfoModels){}

我有一个这样的模型:

public class FailureInfoModel {
      public int Id {get; set;}
      public List<string> Reasons {get; set;}
}

现在我想通过在前端使用 window.open() 来传递 json 数据,如下所示:

<script type="text/javascript">
    var json = 
        [
            {
                Id:111,
                Reasons:[1,2]
            }
        ];
    var formatJson = JSON.stringify({failureInfoModels : json});
    
    window.open("url?failureInfoModels=" + escape(formatJson))
</script>

但是只能得到一个包含 0 个项目的 List 对象。我应该如何更改我的代码来解决这个问题?谢谢。

标签: javascriptc#jsonasp.net-mvc

解决方案


将输入更改为字符串并将其反序列化。

1. public ActionResult GetFailureInfo(string failureInfoModels = "")  
        {  
2.  List<FailureInfoModel> failuresData = JsonConvert.DeserializeObject<List<FailureInfoModel>>(failureInfoModels);  

}


推荐阅读