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 });

何时禁止显示警告

不禁止显示此规则发出的警告。 在运行时解析参数时,不正确的模型绑定设置可能会导致意外的行为。