ASP0003:不要对路由处理程序使用模型绑定属性

价值
规则 ID ASP0003
类别 Usage
修复是中断修复还是非中断修复 Non-breaking

原因

路由处理程序委托包含一个带有[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 });

何时禁止显示警告

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