Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
| Hodnota | |
|---|---|
| Identifikátor pravidla | ASP0007 |
| Kategorie | Použití |
| Oprava je destruktivní nebo nedestruktivní | Nezlomitelný |
Příčina
Parametr trasy je deklarován jako povinný v definici delegáta, ale v trase koncového bodu je označen jako volitelný.
Popis pravidla
Když je koncový bod deklarován, volitelně lze parametry deklarovat v šabloně trasy i v argumentech obslužné rutiny trasy. Pokud je parametr deklarován jako volitelný v obslužné rutině, musí být také deklarován jako volitelný v šabloně trasy. Funkce GET /todos například nedokáže vyřešit shodu pro následující kód:
app.MapGet("/todos/{id}", (int? id) => {});
Předchozí kód neodpovídá příkazu GET /todos , protože id parametr nebyl zadán, i když je v obslužné rutině trasy považován za volitelný.
Jak opravit porušení
Chcete-li opravit porušení tohoto pravidla, ujistěte se, že volitelnost v šabloně trasy a delegát odpovídá. Například pro následující ukázku kódu:
app.MapGet("/todos/{id}", (int? id) => {});
Pokud má být parametr povinný, nastavte typ jako nenulový odebráním ? z int?:
app.MapGet("/todos/{id}", (int id) => {});
Pokud je parametr volitelný, měl by být použit operátor ?:
app.MapGet("/todos/{id?}", (int? id) => {});
Kdy potlačit upozornění
Ne potlačujte upozornění z tohoto pravidla. Neshoda volitelnosti parametrů může vést k neočekávanému chování směrování během běhu programu.