繁体   English   中英

Asp.Net Core - Model 绑定通用 Model 在升级到核心 3.0 后停止工作

[英]Asp.Net Core - Model Binding For Generic Model Stopped Working After Upgrade To Core 3.0

我有一个刚刚从 2.2 升级到 3.0 的 Asp.Net Core Web Api 项目。 在我的应用程序中,我有实体,键可以是字符串、guid、int(很多旧代码)。 为了以通用方式管理一些 API 请求,我创建了这个视图 model:

public class EntityRequestViewModel<T>
{
    [Required]
    public T Id;
}

我在不同的控制器中使用过

[HttpPost]
    [Route("delete")]
    public async Task<IActionResult> Delete([FromBody]EntityRequestViewModel<Guid> deleteEntityRequest)
    {
      //Do something
    }

还有很多视图模型扩展了这个 EntityRequestViewModel。 这很好用,但由于某种原因,升级后,该值未绑定到 Id。

通用参数很好,你做错的是这是一个公共字段

public T Id;

model 绑定真正需要的是具有公共设置器的属性:

public T Id { get; set; }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM