儘管在這裏有大量的帖子,但這一個讓我難倒了。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