下面是我的控制器的一部分:
[Authorize]
public ActionResult Edit(string IdAffaire)
{
Affaire affaire = this.repository.Retrieve(IdAffaire);
if (affaire == null)
{
return Redirect("~/");
}
var model = new AffaireEditViewModel
{
Affaire = affaire,
Status = repository.RetrieveStatus().Select(o => new SelectListItem { Text = o.Name, Value = o.IdStatus.ToString() }).ToList(),
};
return View(model);
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(string idAffaire, AffaireEditViewModel model)
{
Affaire affaire = repository.Retrieve(idAffaire);
if (!ModelState.IsValid)
{
return this.Edit(model.Affaire.IdAffaire);
}
try
{
UpdateModel(affaire);
repository.Save();
return RedirectToAction("Detail", "Affaire", new { idAffaire = idAffaire });
}
catch
{
return View(affaire);
}
}下面是我的编辑ViewModel:
public class AffaireEditViewModel
{
public Affaire Affaire { get; set; }
public IEnumerable<SelectListItem> Status { get; set; }
}以下是我的人际交往模式:
public class Affaire
{
[Key]
public string IdAffaire { get; set; }
public string Title { get; set; }
public string Description { get; set; }
public string Username { get; set; }
public Int16? IdStatus { get; set; }
public Int16? IdLabel { get; set; }
// ....
}我的问题是,当在编辑视图页面中发布新值时,使用正确的值很好地触发了名为“编辑”的操作(),但是语句没有任何效果!任何帮助都是非常感谢的。
编辑的
我发现了问题。
我需要改变这一点:
UpdateModel(affaire);对此:
UpdateModel(affaire,"Affaire");我想这是因为我的视图模型是由几个东西组成的,我需要显式地告诉我的UpdateModel函数使用哪个元素。有人能确认一下吗?
发布于 2011-05-07 16:14:34
要验证--您的存储库是否保留了对模型实例的引用?我看到您调用了保存,但是我没有看到保存的实现,因为您没有将模型传递给它。
https://stackoverflow.com/questions/5922147
复制相似问题