模型绑定Asp Net Core 2.2

时间:2019-02-01 10:47:55

标签: model-binding asp.net-core-2.2

我有以下复杂模型:

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作为操作方法中的第二个参数,因为我有{的验证逻辑{1}}在需要userRequest的地方。有什么想法吗?

1 个答案:

答案 0 :(得分:-1)

使用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
}