System.StackOverflowException non è stata gestita (MVC Model BINDING)
-
06-07-2019 - |
Domanda
Ho iniziato a ricevere questo errore quando ho inviato il modulo con Model Binder. Per testare il problema ho ridotto il postback a una proprietà stringa del modello ma ottengo ancora l'errore di overflow. Qualcuno può suggerire cosa potrebbe causare questo?
UPDATE Il problema sembra essere correlato alla proprietà nel modello che è una chiave esterna. Se questa chiave viene rimossa, l'associazione funziona. Come posso eseguire l'associazione e includere la relazione chiave esterna?
Soluzione
Puoi risolvere questo in alcuni modi. Un modo è provare qualcosa di simile.
public ActionResult AddProduct([Bind(Exclude = "Category")]Product product) { }
Questo dice al raccoglitore di modelli di non provare a legare la Categoria (proprietà FK). Questo è un problema noto e il team MVC lo ha già risolto per RC.
Puoi anche passare un elenco di esclusioni in UpdateModel / TryUpdateModel e in qualsiasi luogo in cui aggiungi un attributo Bind.
Altri suggerimenti
Un overflow dello stack è generalmente dovuto alla ricorsione infinita. Guarda la traccia dello stack e vedi se vedi la stessa funzione (o gruppo di funzioni) più e più volte. Ciò indicherebbe che una funzione ricorsiva non raggiunge mai il suo caso base.