Модель привязки Asp net core 2.2 - PullRequest
0 голосов
/ 01 февраля 2019

У меня есть следующая сложная модель:

public class User
    {
        public int Id { get; set; }

        public string UserName { get; set; }

        public int UserId { get; set; }
    }

Мне нужно связать всю модель в моем методе действия, используя [FromBody], в то время как свойство Id должно прийти [FromQuery].Мой метод действия выглядит так:

public IActionResult Delete([FromBody]User userRequest)
{
    // Some code
}

Дело в том, что я не могу изменить модель, потому что это третья сторона, а также, я не могу иметь Id в качестве второго параметрав методе действия, потому что у меня есть логика проверки для userRequest, где мне нужно Id.Есть идеи?

1 Ответ

0 голосов
/ 01 февраля 2019

Используйте DTO / просмотр модели и сопоставьте ее с User.Например:

public class UserDTO
{
    public string UserName { get; set; }
    public int UserId { get; set; }
}

Тогда:

public IActionResult Delete(int id, [FromBody]UserDTO userRequest)
{
    var user = new User
    {
        Id = id,
        UserName = userRequest.UserName,
        UserId = userRequest.UserId
    }

    // do something
}
...