【问题标题】:Why class object sent to POST is coming NULL?为什么发送到 POST 的类对象为 NULL?
【发布时间】:2019-09-11 21:32:08
【问题描述】:

我在 api 控制器中有这个 POST 方法。

public void Post(EngineeringData EngineeringData)
{
    EngineeringDataDAL EngDataDAL = new EngineeringDataDAL();

    EngDataDAL.InsertEngineeringData(EngineeringData);
}

我正在使用 POSTMAN 向它发送测试数据。

 EngineeringData = {
    'FunctionalLocation': 'Functional1',
    'WINFileNo': 'WinFileNo-01',
    'EqptType': 'EqptType-01',
    'ComponentTagNo': 'Componenttag-01'
}

但是方法的参数是null。为什么?

EngineeringData.cs

public class EngineeringData
{
    public int EnggDataID { get; set; }
    public string FunctionalLocation { get; set; }
    public string WinFileNo { get; set; }
    public string EqptType { get; set; }
    public string ComponentTagNo { get; set; }
}

【问题讨论】:

  • 是的,先生,这是真的
  • 问题是 WinFileNo 字段不匹配。一个是“WINFileNo”,另一个是“WinFileNo”。

标签: c# asp.net post asp.net-web-api postman


【解决方案1】:

我在 api 控制器中有这个 POST 方法。

 public void Post(EngineeringData EngineeringData)

你可能缺少的是

 public void Post([FromBody] EngineeringData EngineeringData)

【讨论】:

    【解决方案2】:

    如果您在请求中包含EngineeringData=,这可能就是原因。据我所知,ASP.Net 期望正文是纯 JSON,而不是表单数据。

    【讨论】:

      【解决方案3】:
      { 
          "FunctionalLocation": "Functional1",
          "WINFileNo": "WinFileNo-01",
          "EqptType": "EqptType-01",
          "ComponentTagNo": "Componenttag-01"
      }
      

      尝试传入此数据。我相信它必须是有效的 JSON 数据才能传递给控制器​​以接受参数。也不确定是否需要=符号之前的左侧参数。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-11-17
        • 2021-06-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-11
        • 2021-01-31
        • 2017-04-07
        相关资源
        最近更新 更多