Asp.net mvc 3 TryUpdateModel/UpdateModel不工作?
我试图更新数据库中存在的多个对象并保存新对象,但它不起作用 这是我的密码:Asp.net mvc 3 TryUpdateModel/UpdateModel不工作?,asp.net-mvc-3,entity-framework,updatemodel,updateexception,Asp.net Mvc 3,Entity Framework,Updatemodel,Updateexception,我试图更新数据库中存在的多个对象并保存新对象,但它不起作用 这是我的密码: [HttpPost] public ActionResult Edit(MasterModel Model) { DBEntities db = new DBEntities(); var reloadView = true; for(int i = 0 ;i< Model.Emails.Count(); i++) {
[HttpPost]
public ActionResult Edit(MasterModel Model)
{
DBEntities db = new DBEntities();
var reloadView = true;
for(int i = 0 ;i< Model.Emails.Count(); i++)
{
if(Model.Emails[i].ID > 0 )
{
var id = Model.Emails[i].ID;
var email = db.EMAIL.Single(e=> e.ID == id);
if(TryValidateModel(Model.Emails[i], "Emails[" +i.ToString() + "]"))
{
TryUpdateModel(email, "Emails[" + i.ToString() + "]");
reloadView = false;
}
else
{
reloadView = true;
}
}
else
{
if(TryValidateModel(Model.Emails[i], "Emails[" + i.ToString() + "]"))
{
db.AddToEMAIL(Model.Emails[i]);
reloadView = false;
}
else
{
reloadView = true;
}
}
}
if(reloadView)
{
return View(Model);
}
else
{
db.SaveChanges();
return RedirectToAction("Index");
}
}
[HttpPost]
公共行动结果编辑(主模型)
{
DBEntities db=新的DBEntities();
var-reloadView=true;
对于(int i=0;i0)
{
var id=Model.Emails[i].id;
var email=db.email.Single(e=>e.ID==ID);
if(TryValidateModel(Model.Emails[i],“Emails[“+i.ToString()+”]))
{
TryUpdateModel(电子邮件,“Emails[“+i.ToString()+”]);
重载视图=false;
}
其他的
{
重载视图=真;
}
}
其他的
{
if(TryValidateModel(Model.Emails[i],“Emails[“+i.ToString()+”]))
{
db.AddToEMAIL(Model.Emails[i]);
重载视图=false;
}
其他的
{
重载视图=真;
}
}
}
如果(重新加载视图)
{
返回视图(模型);
}
其他的
{
db.SaveChanges();
返回操作(“索引”);
}
}
如果在TryUpdateModel之后我执行db.SaveChanges();我得到一个具有引用完整性的System.Data.UpdateException
如果我让我的代码如示例中所示,它就不会更新!:
哦,是的,我也尝试了UpdateModel()
有什么建议吗
提前谢谢
干杯更新对象的常用工作流是: 1) 加载旧对象(使用id) 2) 更改属性
3) 保存更改谢谢你的回答,但这对我的问题没有任何积极影响。若你们看我的代码,我从db得到的,我更新模型,我保存更改。或者你看到了我没有看到的东西吗?嗨,我看到你的代码实现也插入了(Model.Emails[i].ID>0),我不明白为什么你发布了编辑操作。