gpt4 book ai didi

c# - ASP.NET API Controller 的 POST 数据为空

转载 作者:行者123 更新时间:2023-11-30 20:28:33 25 4
gpt4 key购买 nike

我正在尝试迁移到 ASP.NET 6 API Controller ,但我的 JS 函数的 POST 数据显示为空。

我有以下 json 请求:

// searchTerms is an array with 2 properties, Value and Type
$.ajax({
type: 'Post',
contentType: 'application/json',
dataType: "json",
data: JSON.stringify({
searchTerms
})

如果我将其发布到 ASP.NET 6 MVC Controller :

public ActionResult Search(List<SearchTerm> searchTerms)

然后我的 searchTerms 列表被正确填充。

如果我 POST 到 API Controller

[System.Web.Http.HttpPost]
[System.Web.Http.Route("api/search")]
public IHttpActionResult Search([FromBody] List<SearchTerm> searchTerms)

则 searchTerms 为空。

我试过改变contentType,dataType,去掉stringify函数都没有用。

我已经尝试将签名更改为

public IHttpActionResult Search([FromBody] dynamic value)

看看下面的内容,显然我没有正确绑定(bind)?

enter image description here

这是我的 SearchTerm 模型:

public class SearchTerm
{
public string Value { get; set; }
public string Type { get; set; }
}

最佳答案

代替:

data: JSON.stringify({
searchTerms
})

更改您的 $.ajax 调用以仅使用:

data: JSON.stringify(searchTerms)

您正在发送类似于以下内容的 JSON:

{
"seachTerms": [
...
]
}

按照我建议的更改,这将只是一个简单的 JSON 数组,它应该适用于您的示例。

关于c# - ASP.NET API Controller 的 POST 数据为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47151984/

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