Sdílet prostřednictvím


ASP0007: Neshoda parametru trasy a volitelného argumentu

Hodnota
ID pravidla ASP0007
Kategorie Využití
Oprava způsobující chybu nebo chybu způsobující chybu Nenarušující

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 ? typu hodnoty null:

app.MapGet("/todos/{id?}", (int? id) => {});

Kdy potlačit upozornění

Nepotlačujte upozornění z tohoto pravidla. Neshoda volitelného parametru může vést k neočekávanému chování směrování za běhu.