Sto sviluppando un'API REST utilizzando i controller MVC. Mi piacerebbe gestire tutti gli errori di binding del modello e segnalarli al client in modo user-friendly. Nei miei raccoglitori modello personalizzati sto già generando un'eccezione speciale considerata sicura dal gestore delle eccezioni e mostrata al client.Gestire in modo affidabile errori di associazione modello ASP.NET MVC
Tuttavia, quando il legante modello predefinito vede un valore non valido (ad esempio, asdf
per un int
) sembra sia completamente ignorarlo (se il parametro non è necessario) o lanciare una pianura ArgumentException
(se il parametro è obbligatorio). È possibile gestire in modo affidabile entrambi i casi e ottenere il nome del parametro e l'errore correlato, senza riscrivere l'intero raccoglitore a mano?
Preferisco non mostrare il ArgumentException
come è perché rivela metodi e nomi dei nomi che il client non dovrebbe preoccuparsi. Preferisco anche non analizzare il messaggio ArgumentException
se è evitabile, e che non risolverebbe il problema con valori non validi per i parametri non richiesti che vengono ignorati completamente.
Hai mai trovato una buona soluzione? Sto pensando di decorare o sottoclasse l'IModelBinder, ma mi piacerebbe sapere se c'è un modo migliore. –
@FabianSchmied: Purtroppo no. Probabilmente il legatore del modello "Web API" ha un supporto migliore per questo caso - e non so su ASP.NET Core. –