我正在努力学习MVC& EF远离WebForms和ADO.NET。我只是把我的第一个试验网站扔到一起,所以看看它是怎么回事并且遇到了绊脚石。
我正在页面上编辑一条记录,然后按保存。我没有收到任何错误,但数据没有更新。
正在更新文章模型
public class Article
{
[Key]
public int Id { get; set; }
public string Author { get; set; }
public string Title { get; set; }
public DateTime DateCreated { get; set; }
public string Body { get; set; }
public int Likes { get; set; }
public int Dislikes { get; set; }
public List<Comment> Comments { get; set; }
public string Tags { get; set; }
public int Category { get; set; }
}
Controller上的编辑代码,articleId来自查询字符串。
[HttpPost]
public ActionResult Edit(int articleId, FormCollection collection)
{
var result = from i in db.Articles
where i.Id == articleId
select i;
if (TryUpdateModel(result))
{
db.SaveChanges();
return RedirectToAction("Index");
}
return View(result.First());
}
在调试时,TryUpdateModel()返回true并调用db.SaveChanges。没有错误返回。当被引导回Controller上的Index方法时,文章显示未更改。
这显然是明显的吗?
非常感谢
答案 0 :(得分:0)
我忘了从无数字中选择模型了。添加.First()以选择修复它的记录。只是其中一个我无法从树上看到木头的场合!
[HttpPost]
public ActionResult Edit(int articleId, FormCollection collection)
{
var result = from i in db.Articles
where i.Id == articleId
select i;
if (TryUpdateModel(result.First()))
{
db.SaveChanges();
return RedirectToAction("Index");
}
return View(result.First());
}