我无法在asp.net mvc中实现编辑代码

时间:2018-07-16 06:42:53

标签: asp.net model-view-controller

我对自己启动asp.net mvc项目非常陌生。创建工作已经完成,但是我仍然无法进行编辑工作

这是我的DAL码

public class DonationContext:DbContext
{
    public DbSet<DonorModel> DonorModel { get; set; }
}

这是我的控制器代码

private DonationContext dc = new DonationContext();
public ActionResult Edit()
{
    return View();
}

[HttpPost]
public ActionResult Edit(int id)
{
    if (ModelState.IsValid)
    {
        dc.DonorModel.Add(donorModel);
        dc.SaveChanges();
        return RedirectToAction("Index");
    }
    return View(donorModel);
}

2 个答案:

答案 0 :(得分:1)

您可能需要attach或将EntityStates设置为起作用。在某些情况下,我还需要关闭EntityFramework的Validation,但您可能会注意到这种情况。

通常,只要您的DbContext能够按预期工作(如果您不确定,请设置调试器并立即进行调试),您就能完成 的工作,但是值得射击。

答案 1 :(得分:0)

您可以像下面的代码一样使用[HttpPost]编辑。当前,您正在将数据添加到数据库中。因此,要更新记录,您需要使用AttachEntityStates

[HttpPost]
public ActionResult Edit(DonorModel donorModel)
{
    if (ModelState.IsValid)
    {
        dc.Entry(donorModel).State = System.Data.Entity.EntityState.Modified;
        dc.SaveChanges();
        return RedirectToAction("Index");
    }
    return View(donorModel);
}