在 webapi 控制器中接受 application/xml 内容
Accepting application/xml content in webapi controller
我想创建一个将接受 application/xml 内容的操作。
到目前为止,基本上我已经创建了这个。
namespace App.Areas.Test.Controllers
{
public class UserModel
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public int Age { get; set; }
}
public class TestController : ApiController
{
[HttpPost]
public UserModel Test([FromBody] UserModel um)
{
return um;
}
}
}
当我post以下内容
<?xml version="1.0" encoding="UTF-8" ?>
<UserModel>
<FirstName>Some Name</FirstName>
<LastName>Some Last Name</LastName>
<Age>30</Age>
</UserModel>
我得到了这个回复
<UserModel i:nil="true" />
我尝试删除 FromBody
属性,但这也无济于事。由于某些原因,内容未绑定到现有模型。
您是否添加了 Content-Type
: application\xml
header?您需要通知序列化器 body 的格式。
这样就可以了...
var xml = GlobalConfiguration.Configuration.Formatters.XmlFormatter;
xml.UseXmlSerializer = true;
我想创建一个将接受 application/xml 内容的操作。
到目前为止,基本上我已经创建了这个。
namespace App.Areas.Test.Controllers
{
public class UserModel
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public int Age { get; set; }
}
public class TestController : ApiController
{
[HttpPost]
public UserModel Test([FromBody] UserModel um)
{
return um;
}
}
}
当我post以下内容
<?xml version="1.0" encoding="UTF-8" ?>
<UserModel>
<FirstName>Some Name</FirstName>
<LastName>Some Last Name</LastName>
<Age>30</Age>
</UserModel>
我得到了这个回复
<UserModel i:nil="true" />
我尝试删除 FromBody
属性,但这也无济于事。由于某些原因,内容未绑定到现有模型。
您是否添加了 Content-Type
: application\xml
header?您需要通知序列化器 body 的格式。
这样就可以了...
var xml = GlobalConfiguration.Configuration.Formatters.XmlFormatter;
xml.UseXmlSerializer = true;