我有一個供應商表(供應商對象),其中一列是對我的帳戶表(帳戶對象)的NULLABLE外鍵引用。在我的編輯表單中,我將帳戶列表顯示爲下拉列表。我沒有問題設置價值,也沒有更新到另一個帳戶的價值。爲MVC應用程序清除外鍵值
但是,我一直無法清除它的價值。每次我這樣做時,UpdateModel()調用或者Save()調用似乎都會自動失敗(無模型錯誤)。我已經試過了代碼,但我一直無法得到一致的結果,所以我不能確定確切的問題,但它似乎都指向FK參考。我已經明確地嘗試將值設置爲Nothing,但這不起作用。
這是我的原始代碼。
<AcceptVerbs(HttpVerbs.Post)> _
Public Function Edit(ByVal id As String, ByVal formValues As FormCollection) As ActionResult
Dim vendor = _repo.GetVendor(id)
Try
UpdateModel(vendor)
_repo.Save()
Return RedirectToAction("Index")
Catch
ModelState.AddRuleViolations(vendor.GetRuleViolations())
ViewData.Item("Accounts") = Models.DropDownPopulators.PopulateAccounts(_accounts.FindAllAccounts(), vendor.DefaultAccount)
Return View(vendor)
End Try
End Function
我甚至嘗試在更新後添加以下內容。我也嘗試在更新之前對錶單值執行相同操作。
If (vendor.DefaultAccount.Equals("")) Then vendor.DefaultAccount = Nothing
我們可以看到存儲庫的'Save'方法嗎?另外,你是否100%確定'vendor'是否在當前版本庫集合中? – 2009-12-29 18:54:52
由於所有格式(包括換行符)都被刪除,所以我不得不作爲回答發佈回覆。不知道這是否是正確的做法... – Jason 2009-12-30 00:22:17