自定义模型绑定器:无法绑定参数“xxx”,因为它具有冲突的属性。

5
我正在使用自定义模型绑定器,以便在我的模型绑定中加入一些自定义逻辑。 以下是我的DTOs:
public class TaskDto
{
    public int Id { get; set; }

    [MaxLength(100), Required]
    public string Name { get; set; }

    public List<StepDto> Steps { get; set; }

    public List<ResourceDTO> Resources { get; set; }
}

步骤DTO:

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

    [MaxLength(100)]
    public string Description { get; set; }

    public StepType StepType { get; set; }
}

资源DTO:

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

    [MaxLength(250), Required]
    public string Title { get; set; }

    [Required]
    public string Link { get; set; }

    public string MetaTagUrl { get; set; }

    [Required, Range(1, 1)]
    public ResourceType ResourceType { get; set; }
}

其中ResourceType是一个枚举(目前只有一个值1)。

我尝试使用此链接创建自定义模型绑定器。

这是我的API Action方法签名:

    [HttpPut]
    [Route("datacapture/{activityId}/tasks")]
    [Authorize]
    public async Task<IHttpActionResult> UpdateAllDataCaptureActivities(int activityId, [FromBody][ModelBinder] TaskDto tasks)
     {
      ...
     }

在调用API时,我遇到了以下错误:

"Message": "An error has occurred.",
  "ExceptionMessage": "Can't bind parameter 'tasks' because it has conflicting attributes on it.",
  "ExceptionType": "System.InvalidOperationException",
1个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
14

不要同时使用 [FromBody] 和 [ModelBinder]。


这应该被标记为答案。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,