【发布时间】:2021-12-19 01:40:54
【问题描述】:
我正在使用 ASP.NET 网站。我需要从表单中收集数据并将其发送到 api。 PostAsync() 需要两个参数,因此我必须将对象转换为 JSON 才能发送。这就是我的麻烦所在,因为 api 只接收空值。这是我正在查看的相关代码:
string apiurl = "http://localhost:5000/";
var content = new StringContent(JsonConvert.SerializeObject(formData), Encoding.UTF8, "application/json");
using (var httpClient = new HttpClient())
{
using (var response = await httpClient.PostAsync($"{apiurl}api/Contact/Create", content))
{
await response.Content.ReadAsStringAsync();
}
}
最后,我需要 api 来接收来自 formData 对象的值。但是它收到的值是空的。
我无法判断它是否正确转换为 JSON。 JsonConvert.SerializeObject(formData) 正在用我的数据准确地创建一个字符串,而 formData 对象本身就有我的值。但是当我检查内容变量时,我在任何地方都找不到该字符串。
这是 api 标头:
[HttpPost]
[Route("Create")]
public async Task<IActionResult> Create(string listId, string email, string firstName, string lastName)
我该怎么做:
1 - 验证 json 是否正确?
2 - 向 api 发送非空值?
编辑:
这里的要求是我制作的课程:
public class Report
{
public string listId { get; set; }
public string email { get; set; }
public string firstName { get; set; }
public string lastName { get; set; }
}
以及我是如何创建对象的:
Report formData = new Report {
listId = listId,
email = getFormValueFromKey(formModel.fieldNameValuePairs, "Email"),
firstName = "None",
lastName = "None"
};
【问题讨论】:
-
您也必须显示您的 Api 标头,请
-
[HttpPost] [Route("Create")] public async Task
Create(string listId, string email, string firstName, string lastName)
标签: c# asp.net json api umbraco