这是我的行动
public class EmployeesController : ApiController
{
public void Post(int id, Employee employee) //Break point here ...
{
}
}
当我发出以下 POST 请求时,情况正常。
http://localhost:64946/api/employees/12345
Host: localhost:64946
Content-Type: application/json
Content-Length: 194
{"Id":12345,"FirstName":"John","LastName":"Human"}
但是,当我将内容类型更改为application/xml
时,员工对象为 null 。
<Employee xmlns="http://schemas.datacontract.org/2004/07/RequestBinding.Models">
<FirstName>John</FirstName>
<Id>12345</Id>
<LastName>Human</LastName>
</Employee>
我错过了什么吗?
我正在使用 Fiddler 发出请求
感谢您的帮助
答案 0 :(得分:2)
对于此XML
<Employee xmlns="http://schemas.datacontract.org/2004/07/RequestBinding.Models">
<FirstName>John</FirstName>
<Id>12345</Id>
<LastName>Human</LastName>
</Employee>
要正确绑定,Web API项目中的Employee
类必须是这样的。命名空间必须与请求中的内容匹配,类必须是公共的,属性必须是公共的,属性名称必须与XML元素名称匹配。
namespace RequestBinding.Models
{
public class Employee
{
public int Id { get; set; }
// Other properties
}
}