Почему объект класса, отправленный в POST, имеет значение NULL? - PullRequest
1 голос
/ 22 апреля 2019

У меня есть этот метод POST в контроллере API.

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; }
}

Ответы [ 3 ]

3 голосов
/ 22 апреля 2019

У меня есть этот метод POST в контроллере API.

 public void Post(EngineeringData EngineeringData)

То, что вам, вероятно, не хватает, это

 public void Post([FromBody] EngineeringData EngineeringData)
2 голосов
/ 22 апреля 2019

Если вы включаете EngineeringData= в свой запрос, это может быть причиной. Насколько мне известно, ASP.Net ожидает, что тело будет простым JSON, а не данными формы.

0 голосов
/ 22 апреля 2019
{ 
    "FunctionalLocation": "Functional1",
    "WINFileNo": "WinFileNo-01",
    "EqptType": "EqptType-01",
    "ComponentTagNo": "Componenttag-01"
}

Попробуйте передать эти данные. Я считаю, что это должны быть действительные данные JSON, которые должны быть переданы в контроллер для принятия параметров. Также не уверен, нужен ли левый параметр перед знаком =.

...