System.StackOverflowException foi não tratada (MVC modelo de ligação)
-
06-07-2019 - |
Pergunta
eu comecei a receber esse erro ao postar o formulário de volta com o modelo Binder. Para testar o problema que reduziu o postback para uma propriedade de string do modelo, mas eu ainda obter o erro de estouro. Alguém pode sugerir o que poderia causar isso?
Atualização O problema parece estar relacionado com a propriedade no modelo que é uma chave estrangeira. Se esta chave for removida, a obras de ligação. Como posso fazer a ligação e incluem a relação de chave estrangeira?
Solução
Você pode corrigir isso de algumas maneiras. Uma maneira é tentar algo como isto.
public ActionResult AddProduct([Bind(Exclude = "Category")]Product product) { }
Isto diz o fichário de modelo não tentar vincular a Categoria (FK propriedade). Este é um problema conhecido e a equipe MVC já fixou-o para RC.
Você também pode passar em uma lista de exclusão em UpdateModel / TryUpdateModel e em qualquer lugar que você adicionar um atributo Bind.
Outras dicas
Um estouro de pilha é geralmente devido a recursão infinita. Olhe através do rastreamento de pilha e veja se você ver a mesma função (ou grupo de funções) e outra vez. Isso indicaria que uma função recursiva não está chegando ao caso base.