Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
| Värde | |
|---|---|
| Regel-ID | ASP0007 | 
| Kategori | Användning | 
| Korrigeringen är antingen brytande eller icke-brytande | Oskiljbar | 
Orsak
En routningsparameter deklareras som obligatorisk i delegatdefinitionen men markeras som valfri i slutpunktsvägen.
Regelbeskrivning
När en slutpunkt deklareras kan parametrarnas valfrihet deklareras i både routningsmallen och i routningshanterarargumenten. När en parameter deklareras som valfri i hanteraren måste den också deklareras som valfri i routningsmallen. GET /todos kan till exempel inte matcha följande kod:
app.MapGet("/todos/{id}", (int? id) => {});
Föregående kod matchar inte GET /todos eftersom parametern id inte har angetts, även om den behandlas som valfri i routningshanteraren.
Så här åtgärdar du överträdelser
För att åtgärda ett brott mot den här regeln, se till att valfriheten i routningsmallen och delegeringen stämmer överens. Till exempel för följande kodexempel:
app.MapGet("/todos/{id}", (int? id) => {});
Om parametern är avsedd att krävas gör du typen icke-nullbar genom att ta bort ? från int?:
app.MapGet("/todos/{id}", (int id) => {});
Om parametern är avsedd att vara valfri bör operatorn ? för null-värdetyp tillämpas:
app.MapGet("/todos/{id?}", (int? id) => {});
När du ska ignorera varningar
Utelämna inte en varning från den här regeln. Felaktig parameter-valfrihet kan resultera i oväntat beteende med routning under körexekvering.
ASP.NET Core