gpt4 book ai didi

c# - 对 C# Controller 的 HTTP POST 请求

转载 作者:行者123 更新时间:2023-11-30 19:27:24 25 4
gpt4 key购买 nike

我正在尝试向我的 C# Controller 发出 HTTP POST 请求,但我需要将数据发送到数组中,因此我尝试使用 JSON.stringify,但是当我开始调试时,我的 Controller 中的输入参数为 NULL?我从外部 API 收到一个天气预报列表,所以我需要为列表中的每个项目创建新变量,其中包含一些字段,例如:最高和最低温度、描述、湿度、压力等,然后当然要填写这些带有数据的字段并将该变量添加到我的数组中。然后我需要将这个数组传递给我的 Controller ,这样我就可以将它存储在我的数据库中......我应该在我的 Controller 中放入什么类型,这样它就不会为 NULL?我是新来的,所以请帮忙,我们非常欢迎任何帮助!

下面是我刚刚尝试的代码:

 var myData = { id:100, description:"some text"};
var myDataArray= new Array();
myDataArray.push(myData);
$.ajax({
dataType: "json",
type: "POST",
url: "/Weather1/Weather_post",
contentType: "application/json; charset=utf-8",
data: JSON.stringify(myDataArray),
success: function (data) {
console.log(("OK"));
},
error: function (error)
{ console.log("NOT OK"); }
})

Controller :

[HttpPost]
public JsonResult Weather_post(String MyModuleList)

最佳答案

模型绑定(bind)不知道“MyModuleList”是什么。您可以在此处使用强类型模型,MVC 会将 JSON 绑定(bind)到它。

考虑 JSON:

var data = {
moduleList: [
{ id:100, description:"some text"}
];
};

和模型:

public class ModuleListModel
{
public List<ModuleModel> ModuleList { get; set; }
}
public class ModuleModel
{
public int Id { get; set; }
public string Description { get; set; }
}

和 Action :

[HttpPost]
public JsonResult Weather_post(ModuleListModel model)
{
...
}

结合@Timothy Shields 的回答:

You're missing processData: false in your ajax call. Without that, ajax is going to try to pack the data into the URL query string. (See here: http://api.jquery.com/jQuery.ajax/)

你应该很好。

关于c# - 对 C# Controller 的 HTTP POST 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18662680/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com