【发布时间】:2019-09-20 17:47:48
【问题描述】:
我的 react 前端发布了 json 数据,而 asp.net 核心后端总是得到 value=null。它如何获取值?
我试过[FromForm][FromBody],&[FromQuery],但值始终为空。
[后端核心2.2]
[HttpPost]
[Route("companies")]
//public void Post([FromQuery] Data data)
//public void Post(string data)
//public void Post([FromBody] Data data)
public void Post([FromForm] Data data)
{
// Cannot get data.values here.
}
public class Data
{
public string Value1 { get; set; }
public string Value2 { get; set; }
}
[前端]
var Data = {
Value1: "1",
Value2: "2"
};
fetch('http://localhost:61980/api/values/companies', {
method: 'POST',
contentType : 'application/json',
dataType: "json",
// data: jsonData,
data: JSON.stringify(Data),
// body: JSON.stringify(Data),
// body: "aaa",
mode: 'no-cors'
})
后端总是得到data 和data.Value1 = null 和data.Value2 = null。
【问题讨论】:
-
你有两次
data:。data: jsonData, data: JSON.stringify(Data)删除两个之一。 -
谢谢,我只是忘了注释掉它,它仍然不起作用。我尝试了很多方法并将它们注释掉。
-
你可以尝试制作
public class Data { public string value1 { get; set; } public string value2 { get; set; } }小写字母v.并使用FromBody -
您需要使用 [FromBody] 并且还需要在 fetch ..... headers 中设置正文:{ 'Accept': 'application/json, text/plain, /', 'Content-Type': 'application/json' }, 正文: JSON.stringify(Data)
-
我使用的 jQuery 版本:function PostModel(requestModel, url, successFunction, successParam) { $.ajax({ type: "POST", url: url, data: JSON.stringify(requestModel), dataType : "json", contentType: "application/json; charset=utf-8", headers: ComposeAntiForgeryTokenHeader(), success: function (resultModel) { } }); }