ASP0003:請勿使用模型繫結屬性搭配路由處理常式
值 | |
---|---|
規則識別碼 | 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 });
隱藏警告的時機
請勿隱藏此規則的警告。 不正確的模型繫結設定可能會導致在執行階段解析參數時發生非預期的行為。