Система.Исключение StackOverflowException было необработанным (ПРИВЯЗКА к модели MVC)
-
06-07-2019 - |
Вопрос
Я начал получать эту ошибку при отправке формы обратно с помощью Model Binder.Чтобы проверить проблему, я сократил обратную передачу до одного строкового свойства модели, но я по-прежнему получаю ошибку переполнения.Кто-нибудь может подсказать, что могло бы вызвать это?
Обновить Проблема, по-видимому, связана со свойством в модели, которое является внешним ключом.Если этот ключ удален, привязка работает.Как я могу выполнить привязку и включить связь с внешним ключом?
Решение
Вы можете исправить это несколькими способами.Один из способов - попробовать что-то подобное.
public ActionResult AddProduct([Bind(Exclude = "Category")]Product product) { }
Это указывает связующему модели не пытаться привязать Категорию (свойство FK).Это известная проблема, и команда MVC уже исправила ее для RC.
Вы также можете передать список исключений в UpdateModel /TryUpdateModel и в любое другое место, где вы добавляете атрибут Bind.
Другие советы
Переполнение стека обычно происходит из-за бесконечной рекурсии.Просмотрите трассировку стека и посмотрите, видите ли вы одну и ту же функцию (или группу функций) снова и снова.Это означало бы, что рекурсивная функция никогда не достигает своего базового варианта.