ASP0003:不要将模型绑定属性与路由处理程序一起使用
值 | |
---|---|
规则 ID | ASP0003 |
类别 | 使用情况 |
修复是中断修复还是非中断修复 | 非中断 |
原因
路由处理程序委托包含一个具有 [Bind]
属性的参数。
规则说明
路由处理程序终结点仅支持 MVC 属性的子集,例如 [FromRoute]
、[FromBody]
等。将忽略不受支持的属性并导致意外的绑定行为。 例如,以下代码会生成分析器警告:
app.MapGet("/todos/{id}", ([Bind] int id) => new Todo { Id = id });
如何解决冲突
要修复违反此规则的问题,请确保终结点使用允许的模型绑定属性之一。
app.MapGet("/todos/{id}", ([FromRoute] int id) => new Todo { Id = id });
何时禁止显示警告
不禁止显示此规则发出的警告。 在运行时解析参数时,不正确的模型绑定设置可能会导致意外的行为。