我有一个编辑操作来编辑我的评论模型:
public partial class Comment
{
[DisplayName("شناسه نظر")]
public int Id { get; set; }
[Required(ErrorMessage = "متن نظر را وارد کنید")]
[DisplayName("متن نظر")]
public string CommentText { get; set; }
[DisplayName("تعداد پسندیدن ")]
public long LikeCount { get; set; }
[DisplayName("تعداد نپسندیدن")]
public long DisLikeCount { get; set; }
[DisplayName("تاریخ انتشار ")]
public System.DateTime PublishDate { get; set; }
[DisplayName("وضعیت نمایش ")]
public string Visible { get; set; }
[DisplayName("نام کاربری ")]
public string AutherUserName { get; set; }
[DisplayName("شناسه نظراصلی")]
public Nullable<int> CommentFKId { get; set; }
[DisplayName("شناسه کاربر")]
public Nullable<int> StudentId { get; set; }
[DisplayName("شناسه محتوا ")]
public Nullable<int> ContentId { get; set; }
public virtual ICollection<Comment> Comments { get; set; }
public virtual Comment Comment1 { get; set; }
public virtual Student Student { get; set; }
public virtual Content Content { get; set; }
}
我的模型中有很多列但是在编辑操作中我只需要编辑其中的一些列。
所以我的Postback编辑操作是这样的:
[HttpPost]
public ActionResult Edit(Comment comment, FormCollection form)
{
//comment.AutherUserName = "admin";
//comment.LikeCount = 0;
if (ModelState.IsValid)
{
TryUpdateModel(comment, new string[] {"CommentText", "Visible"});
obj.Update(comment);
obj.Save();
}
return RedirectToAction("Index", "Comment", new { contentID = form["ContentId"].ToString() });
}
因为你可以看到我想要更新 commentText 和可见。但是这段代码并没有更新我的模型。它不会返回任何错误
以下是更新方法:
public void Update(Comment comment)
{
_dbcontext.Entry(comment).State = EntityState.Modified;
}
我的保存功能:
public void Save()
{
_dbcontext.SaveChanges();
}
祝你好运
答案 0 :(得分:1)
这样做:
public void Update(Comment comment)
{
_dbcontext.Entry(comment).State = EntityState.Modified;
_dbContext.SaveChanges();
}
您正在更新对象,但不保存它以反映数据库中的对象更改。
答案 1 :(得分:0)
最后我做了这个方法:
[HttpPost]
public ActionResult Edit(Comment comment, FormCollection form)
{
Comment temp = obj.FindCommentsById(comment.Id);
temp.CommentText = comment.CommentText;
temp.Visible = comment.Visible;
if (ModelState.IsValid)
{
//TryUpdateModel(comment, new string[] {"CommentText", "Visible"});
obj.Update(temp);
obj.Save();
}
return RedirectToAction("Index", "Comment", new { contentID = form["ContentId"].ToString() });
}
首先我编辑我想要的列,然后将记录的ID传递给 FindCommentsById ,并将返回的实体的值更改为新的。