Asp.Net Core oData - после запроса все свойства имеют значение null - PullRequest
0 голосов
/ 18 марта 2019

Я пытаюсь настроить контроллер oData для моего основного проекта Asp.Net.

Get/GetSingle/Delete/Patch работает как шарм.

Но в моем почтовом запросе для моей входящей модели все свойства имеют нулевое значение.

Я использую Asp.Net.Core 2.2 и oData 7.1

public async Task<ActionResult<TViewModel>> Post(TViewModel item)
{           
    if (!ModelState.IsValid)
    {
        return BadRequest(ModelState);
    }

    try
    {
        var addedEntity = await _manager.AddAsync(_mapper.Map<TModel>(item));
        return Ok(_mapper.Map<TViewModel>(addedEntity));
    }
    catch (CreateException)
    {
        return BadRequest();
    }
}

Вот моя модель:

public class UserViewModel : IViewModel
{
    public Guid? Id { get; set; }
    public string SecurityStamp { get; set; }

    public Gender? Gender { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string UserName { get; set; }
    public string Email { get; set; }
    public string PhoneNumber { get; set; }

    public IEnumerable<string> Roles { get; set; }
}

И это моя просьба:

enter image description here

И вот мой результат:

enter image description here

1 Ответ

1 голос
/ 18 марта 2019

Вам необходимо указать [FromBody] для параметра контроллера, чтобы платформа могла правильно связываться с вашей моделью. См. Документацию по Связывание модели в ASP.NET Core .

Попробуйте:

[HttpPost]
public async Task<ActionResult<TViewModel>> Post([FromBody] TViewModel item)
{
    // your code
}
...