asp.net - 将带有列表的实例传递给 API
问题描述
有完整的测试代码。将 JSON 数据发布到 API 时,实例人员为空。谁能告诉我为什么
模型
public class Diploma
{
public int PeronId { get; set; }
public string Tile { get; set; }
public string Organism { get; set; }
}
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
public string Function { get; set; }
public List<Diploma> Diplomas { get; set; }
public Person()
{
Diplomas = new List<Diploma>();
}
}
控制器
public class PersonnesController : ApiController
{
private const string cs = "Data Source=.;Initial Catalog=test;Integrated Security=True";
// POST : Person
[HttpPost]
public int Post([FromBody] Person person)
{
bool res = false;
int id;
SqlCommand cmd = new SqlCommand();
using (SqlConnection connection = new SqlConnection(cs))
{
cmd = new SqlCommand("insert dbo.personnes (Name, Function) output INSERTED.ID values (@name, @function)", connection);
cmd.Parameters.AddWithValue("@nam", person.Name);
cmd.Parameters.AddWithValue("@function", person.Function);
connection.Open();
id = (int)cmd.ExecuteScalar();
foreach (Diploma diploma in person.Diplomas)
{
cmd = new SqlCommand("insert diplomes values(@id, @title, @organism)", connection);
cmd.Parameters.AddWithValue("@id", id);
cmd.Parameters.AddWithValue("@title", diploma.Tile);
cmd.Parameters.AddWithValue("@organism", diploma.Organism);
cmd.ExecuteNonQuery();
}
return id;
}
}
}
我正在使用 RESTClient for Firefox 进行测试,
在标题部分:
Content-type : application/x-www-form-urlencoded
解决方案
正在使用错误的 发送数据Content-Type
。
表明数据是使用发送的Content-type : application/x-www-form-urlencoded
而显示的数据是JSON
{ "Name": "my name", "Function": "my function", "diplomas": [{ "title": "diploma 1", "organism": "university 1" }, { "title": "diploma 2", "organism": "university 2" }] }
这将使用Content-type : application/json
内容类型
模型绑定器无法使用提供的内容类型解析内容,因此它默认模型为null。
推荐阅读
- .htaccess - 尝试重定向 301 时的重复 URL
- excel - 循环导致 CPU 使用率高
- sql - 显示表中的所有重复值及其 ID (SQL)
- ajax - Spring Boot Ajax 调用不成功
- ruby-on-rails - Capybara,可以访问 Selenium 操作吗?
- python-2.7 - Python Lambda 用于复制大文件
- javascript - 试图制作返回 mysql 'SELECT * FROM' 结果的函数,最终返回 undefined
- r - ggplot2中给定不同方程线的彩色背景
- python - 从 xml 中删除所有命名空间
- javascript - 无法理解这个 Javascript 语法