尽管在这里有大量的帖子,但这一个让我难倒了。ASP.MVC ModelBinding Behavior
该场景是一个简单的CRUD操作的基本MVC(2)Web应用程序。每当编辑形式被提交和的UpdateModel()调用,则抛出异常:
System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException是由用户代码未处理
这发生针对一个DropDownList值,它是实体表上的外键。但是,表单上还有另一个DropDownList列表,表示另一个外键,它不会抛出错误(不出所料)。手动更改属性值的编辑操作中:
Recipe recipe = repository.GetRecipe(int.Parse(formValues["recipeid"]));
recipe.CategoryId = Convert.ToInt32(formValues["CategoryId"].ToString());
recipe.Page = int.Parse(formValues["Page"].ToString());
recipe.PublicationId=Convert.ToInt32(formValues["PublicationId"].ToString());
允许的CategoryId和页面属性进行更新,然后引发错误的PublicationId。所有的参照完整性在db和dbml中都是相同的。
任何光线都会受到欢迎。
使用适当的视图模型......^_^ – 2010-02-03 14:00:07
我做的。这只是一些调试代码来进入错误;) – OldBoy 2010-02-03 16:49:46