我想設置一個編輯視圖,我有一個文本框和DropDownListFor。我已經想出了填充DDLF的方法,並且渲染和發佈的值是正確的,但我似乎無法讓模型正確更新。UpdateModel不更新模型通過ViewModel和DropDownListFor屬性
我試圖更新的對象是從LINQtoSQL生成的,而在數據庫中它有外鍵列。在導致「包含」關係的LINQtoSQL類中。我可以找到代表DB中列的ID屬性,以及它代表的對象。
zupanija = new Zupanija(); //object that needs to be updated
zupanija.Drzava; //object that i want to change to make the update
zupanija.DrzavaID; //Property linked to object that should change
只有我已經想通了,做的更新方式是從DDLF獲得的價值,並用它來獲得,我想改變這樣的對象:
[HttpPost]
public ActionResult Edit(int id, FormCollection collection)
{
var zupanija = repo.ZupanijaById(id);
var drzava = new repoDrzava().DrzavaById(Convert.ToInt32(collection["Zupanija.DrzavaID"]));
zupanija.Drzava = drzava;
}
而且當我嘗試更新ID字段是這樣,然後我得到如下因素的錯誤:
zupanija.DrzavaID = Convert.ToInt32(collection["Zupanija.DrzavaID"]);
錯誤:拋出新System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
在我看來,這是非常糟糕的方式來做到這一點,我試圖讓UpdateModel工作。