Asp.net web api Web Api:仅使用JSON而非XML的模型绑定

Asp.net web api Web Api:仅使用JSON而非XML的模型绑定,asp.net-web-api,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: appl

这是我的行动

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
时,employee对象为null

<Employee xmlns="http://schemas.datacontract.org/2004/07/RequestBinding.Models">
   <FirstName>John</FirstName>
   <Id>12345</Id>
   <LastName>Human</LastName>
</Employee>

约翰
12345
人类
我错过什么了吗

更新 我正在使用小提琴手发出请求

感谢您为本XML提供帮助

<Employee xmlns="http://schemas.datacontract.org/2004/07/RequestBinding.Models">
   <FirstName>John</FirstName>
   <Id>12345</Id>
   <LastName>Human</LastName>
</Employee>

默认情况下,web api以xml格式返回结果。如果您未在请求中传递任何内容类型,它将以xml格式发送结果format@VijaySingh这是使用fiddler的POST请求。当我在正文中发送
json
时,它会工作。但是,当我将内容类型更改为
application/xml
,然后将主体中的json替换为xml时,操作中的employee对象将变为null。属性匹配。但是,哪个名称空间应该更大?这
xmlns=”http://schemas.datacontract.org/2004/07/RequestBinding.Models“
?模型的命名空间必须与请求中的命名空间匹配。由于您的XML具有
RequestBinding.Models
,因此
Employee
的命名空间必须相同,如我的回答所示。已确认!我在json绑定工作而xml不工作时也遇到了同样的问题。在设置了正确的名称空间之后,它被修复了。谢谢json的另一个要点是,使用它要简单得多。嘿。@Badri,你认为你能帮我解决这个问题吗
namespace RequestBinding.Models
{
    public class Employee
    {
        public int Id { get; set; }
        // Other properties
    }
}