我在使用Model Binder发布表单时发生此错误。为了测试这个问题,我将回发减少为模型的一个字符串属性,但仍然出现溢出错误。任何人都可以提出什么会导致这个?System.StackOverflowException未处理(MVC Model BINDING)
更新 该问题似乎与外部模型中的属性有关。如果该键被删除,则绑定起作用。我该如何做绑定并包含外键关系?
我在使用Model Binder发布表单时发生此错误。为了测试这个问题,我将回发减少为模型的一个字符串属性,但仍然出现溢出错误。任何人都可以提出什么会导致这个?System.StackOverflowException未处理(MVC Model BINDING)
更新 该问题似乎与外部模型中的属性有关。如果该键被删除,则绑定起作用。我该如何做绑定并包含外键关系?
你可以通过几种方法解决这个问题。一种方法是尝试这样的事情。
public ActionResult AddProduct([Bind(Exclude = "Category")]Product product) { }
这告诉模型联编程序不尝试绑定类别(FK属性)。这是一个已知的问题,MVC团队已经为RC进行了修复。
您还可以将排除列表传递到UpdateModel/TryUpdateModel以及您添加绑定属性的任何位置。
堆栈溢出通常是由于无限递归。查看堆栈跟踪,看看你是否一遍又一遍地看到相同的功能(或功能组)。这将表明递归函数从未达到其基本情况。
感谢您的信息。实际上,“排除”也不起作用。 – zsharp 2009-01-09 06:07:27