Исключение System.StackOverflowException не обработано (привязка модели MVC) - PullRequest
1 голос
/ 09 января 2009

Я начал получать эту ошибку при отправке формы обратно в Model Binder. Чтобы проверить проблему, я уменьшил обратную передачу до одного строкового свойства модели, но все равно получаю ошибку переполнения. Кто-нибудь может подсказать, что вызвало бы это?

UPDATE Проблема, по-видимому, связана со свойством в модели, который является внешним ключом. Если этот ключ удален, привязка работает. Как я могу выполнить связывание и включить отношение внешнего ключа?

Ответы [ 2 ]

1 голос
/ 09 января 2009

Вы можете исправить это несколькими способами. Один из способов - попробовать что-то вроде этого.

public ActionResult AddProduct([Bind(Exclude = "Category")]Product product) { }

Это говорит связующему модели не пытаться связывать категорию (свойство FK). Это известная проблема, и команда MVC уже исправила ее для RC.

Вы также можете передать список исключений в UpdateModel / TryUpdateModel и в любое место, куда вы добавляете атрибут Bind.

0 голосов
/ 09 января 2009

Переполнение стека обычно происходит из-за бесконечной рекурсии. Просмотрите трассировку стека и посмотрите, видите ли вы одну и ту же функцию (или группу функций) снова и снова. Это указывало бы на то, что рекурсивная функция никогда не достигает своего базового случая.

...