System.StackOverflowException no se manejó (MVC Model BINDING)
-
06-07-2019 - |
Pregunta
Empecé a recibir este error al volver a publicar el formulario con Model Binder. Para probar el problema, reduje la devolución de datos a una propiedad de cadena del modelo, pero aún recibo el error de desbordamiento. ¿Alguien puede sugerir qué causaría esto?
ACTUALIZACIÓN El problema parece estar relacionado con la propiedad en el modelo que es una clave foránea. Si se elimina esta clave, el enlace funciona. ¿Cómo puedo hacer el enlace e incluir la relación de clave externa?
Solución
Puedes arreglar esto de varias maneras. Una forma es probar algo como esto.
public ActionResult AddProduct([Bind(Exclude = "Category")]Product product) { }
Esto le dice al modelo de carpeta que no intente vincular la Categoría (propiedad FK). Este es un problema conocido y el equipo de MVC ya lo ha solucionado para RC.
También puede pasar una lista de exclusión a UpdateModel / TryUpdateModel y a cualquier lugar donde agregue un atributo Bind.
Otros consejos
Un desbordamiento de pila generalmente se debe a una recursión infinita. Mire a través del seguimiento de la pila y vea si ve la misma función (o grupo de funciones) una y otra vez. Eso indicaría que una función recursiva nunca alcanza su caso base.