MVC 6 XML API post 不会绑定到模型
MVC 6 XML API post won't bind to model
我的最终目标是在收到新 SMS 时接收 Twilio XML 帖子,但现在我坚持将 XML 数据绑定到模型。
ASP.NET5、MVC 6
我启用了 XML 格式化程序:
services.AddMvc().AddXmlDataContractSerializerFormatters().AddXmlSerializerFormatters();
我有一个简单的模型class:
public class XmlTest
{
public string PropertyOne { get; set; }
public string PropertyTwo { get; set; }
}
还有一个简单的API方法:
[HttpPost]
public IActionResult Post(XmlTest xmlTest)
{
//Application Logic
}
使用 PostMan,我正在 posting 这个 XML 数据:
<?xml version="1.0" encoding="UTF-8"?>
<XmlTest>
<PropertyOne>ValueOne</PropertyOne>
<PropertyTwo>ghi789</PropertyTwo>
</XmlTest>
当数据被 posted 时,xmlTest 被初始化但是 PropertyOne 和 PropertyTwo 的值没有被设置。如果我将 [FromBody]
属性添加到 XmlTest,那么当 post 出现时 xmlTest 的值为 null。
任何人都可以帮助解决我在这里做错的事情吗?
JSON 工作正常,但 Twilio 只会 post xml.
谢谢!
这里是 Twilio 布道者。
只是为了确保我理解您的要求,您想接收 Twilio 在收到新消息时发送给消息请求 URL 的参数吗?
如果我理解的没错,那么就没有必要处理XML。 Twilio 发送的参数是表单编码值,因此您可以像从 HTML 表单向控制器发送值一样处理它们:
public ActionResult Incoming(string Body, string From, string To) {
//you can return TwiML back to Twilio here or nothing
}
希望对您有所帮助。
我的最终目标是在收到新 SMS 时接收 Twilio XML 帖子,但现在我坚持将 XML 数据绑定到模型。
ASP.NET5、MVC 6
我启用了 XML 格式化程序:
services.AddMvc().AddXmlDataContractSerializerFormatters().AddXmlSerializerFormatters();
我有一个简单的模型class:
public class XmlTest
{
public string PropertyOne { get; set; }
public string PropertyTwo { get; set; }
}
还有一个简单的API方法:
[HttpPost]
public IActionResult Post(XmlTest xmlTest)
{
//Application Logic
}
使用 PostMan,我正在 posting 这个 XML 数据:
<?xml version="1.0" encoding="UTF-8"?>
<XmlTest>
<PropertyOne>ValueOne</PropertyOne>
<PropertyTwo>ghi789</PropertyTwo>
</XmlTest>
当数据被 posted 时,xmlTest 被初始化但是 PropertyOne 和 PropertyTwo 的值没有被设置。如果我将 [FromBody]
属性添加到 XmlTest,那么当 post 出现时 xmlTest 的值为 null。
任何人都可以帮助解决我在这里做错的事情吗?
JSON 工作正常,但 Twilio 只会 post xml.
谢谢!
这里是 Twilio 布道者。
只是为了确保我理解您的要求,您想接收 Twilio 在收到新消息时发送给消息请求 URL 的参数吗?
如果我理解的没错,那么就没有必要处理XML。 Twilio 发送的参数是表单编码值,因此您可以像从 HTML 表单向控制器发送值一样处理它们:
public ActionResult Incoming(string Body, string From, string To) {
//you can return TwiML back to Twilio here or nothing
}
希望对您有所帮助。