Web Api:模型绑定仅适用于JSON而非XML

时间:2013-12-21 02:21:09

标签: asp.net-web-api

这是我的行动

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 发出请求

感谢您的帮助

1 个答案:

答案 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
    }
}