模型绑定Asp net core 2.2
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
}
问题是我无法更改模型,因为它是第 3 方,而且我不能将 Id
作为操作方法中的第二个参数,因为我有验证逻辑对于 userRequest
我需要 Id
。有什么想法吗?
使用 DTO/view 模型并映射到 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
}
我有以下复杂模型:
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
}
问题是我无法更改模型,因为它是第 3 方,而且我不能将 Id
作为操作方法中的第二个参数,因为我有验证逻辑对于 userRequest
我需要 Id
。有什么想法吗?
使用 DTO/view 模型并映射到 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
}