MVC 6 XML API帖子未能绑定到模型

时间:2015-11-30 15:59:50

标签: asp.net xml http-post asp.net-core-mvc

我最终的目标是在收到新的短信时收到Twilio XML帖子,但现在我仍然坚持将XML数据绑定到模型。

ASP.NET 5,MVC 6

我已启用XML格式化程序: services.AddMvc().AddXmlDataContractSerializerFormatters().AddXmlSerializerFormatters();

我有一个简单的模型类:

public class XmlTest
{
    public string PropertyOne { get; set; }
    public string PropertyTwo { get; set; }
}

一个简单的API方法:

[HttpPost]
public IActionResult Post(XmlTest xmlTest)
{
    //Application Logic
}

使用PostMan,我发布了这个XML数据:

<?xml version="1.0" encoding="UTF-8"?>
<XmlTest>
   <PropertyOne>ValueOne</PropertyOne>
   <PropertyTwo>ghi789</PropertyTwo>
</XmlTest>

发布数据时,会初始化xmlTest,但不会设置PropertyOne和PropertyTwo的值。如果我将[FromBody]属性添加到XmlTest,那么发布帖子时xmlTest的值为null。

任何人都可以帮助解决我在这里做错的事吗?

JSON工作正常,但Twilio只发布xml。

谢谢!

1 个答案:

答案 0 :(得分:1)

Twilio传道者在这里。

为了确保我理解您的要求,您希望在收到新消息时收到Twilio发送到MEssage请求URL的参数吗?

如果我理解正确,那么就没有必要处理XML。 Twilio发送的参数是表单编码值,因此您可以像处理HTML表单中的值到控制器一样处理它们:

public ActionResult Incoming(string Body, string From, string To) {

    //you can return TwiML back to Twilio here or nothing

}

希望有所帮助。