为什么我无法在控制器中获得 post 请求?

Why I can't get a post request in the controller?

我想在控制器中获取 post 的主体。

这是我的代码:

[HttpPost]
public string GetMsg([FromBody]GetMsgModel GSM)
{
    return "";
}

和posted class

public class GetMsgModel { 
    public string ToUserName { get; set; }
    public string FromUserName { get; set; }
    public string CreateTime { get; set; }
    public string MsgType { get; set; }
    public string Content { get; set; }
    public string MsgId { get; set; }
}

我在 GetMsg 中添加了一个断点,并通过 postman 发送了一个带有此 XML 正文的 post:

<xml>
  <ToUserName>123</ToUserName>
  <FromUserName>456</FromUserName>
  <CreateTime>1348831860</CreateTime>
  <MsgType>789</MsgType>
  <Content>000</Content>
  <MsgId>1234567890123456</MsgId>
</xml>

嗯,断点根本就没有运行。

这有什么问题吗?同一个控制器中还有另一个 HttpGet 方法,它运行良好。看来还不是控制器的问题

如果您使用的是 Net Core 添加到 Statup.cs

services.AddXmlSerializerFormatters();

而 XML 应该是

<GetMsgModel>
  <ToUserName>123</ToUserName>
  <FromUserName>456</FromUserName>
  <CreateTime>1348831860</CreateTime>
  <MsgType>789</MsgType>
  <Content>000</Content>
  <MsgId>1234567890123456</MsgId>
</GetMsgModel>

希望对您有所帮助