如何使用 GET 请求将 JSON 数组传递给 Controller 方法?
Posted
技术标签:
【中文标题】如何使用 GET 请求将 JSON 数组传递给 Controller 方法?【英文标题】:How to pass a JSON array to Controller method by using GET request? 【发布时间】:2021-08-12 14:23:56 【问题描述】:我有一个这样的控制器方法:
[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 对象。 我应该如何更改我的代码来解决这个问题? 谢谢。
【问题讨论】:
至少有一个问题是你的原因数组有数字而不是字符串 【参考方案1】:将输入更改为字符串并对其进行反序列化。
1. public ActionResult GetFailureInfo(string failureInfoModels = "")
2. List<FailureInfoModel> failuresData = JsonConvert.DeserializeObject<List<FailureInfoModel>>(failureInfoModels);
【讨论】:
以上是关于如何使用 GET 请求将 JSON 数组传递给 Controller 方法?的主要内容,如果未能解决你的问题,请参考以下文章
通过 GET 将 JSON 数组传递给 MVC Web API