【发布时间】:2011-05-02 06:36:43
【问题描述】:
我正在尝试设置一个编辑视图,在该视图上我有一个文本框和 DropDownListFor。我已经找到了一种填充 DDLF 的方法,并且渲染和发布的值是正确的,但我似乎无法让模型正确更新。
我尝试更新的对象是从 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"]);
错误:throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
在我看来,这是非常糟糕的做法,我正在尝试让 UpdateModel 工作。
【问题讨论】:
标签: asp.net-mvc-3 viewmodel updatemodel