首页 > 解决方案 > 批准请求后将更改保存到数据库

问题描述

我正在构建一个假期跟踪网络应用程序。

在我的应用程序中,员工可以通过创建假期申请表登录并申请假期。

当他们创建申请表时,必须得到经理的批准。因此,在 Approved 设置为 true 之前,我不希望将更改保存到数据库中!

我是否通过 if 语句来做到这一点?

我是否必须创建另一个页面,管理员可以在其中查看所有请求并将特定请求设置为 true?

这是我的假期申请表模型:

public partial class HolidayRequestForm
{
    public int RequestID { get; set; }
    public int EmployeeID { get; set; }
    public System.DateTime StartDate { get; set; }
    public System.DateTime FinishDate { get; set; }
    public int HoursTaken { get; set; }
    public string Comments { get; set; }
    public int YearCreated { get; set; }
    public int MonthCreated { get; set; }
    public int DayCreated { get; set; }
    public Nullable<int> YearOfHoliday { get; set; }
    public Nullable<bool> Approved { get; set; }
}

这是我的控制器部分:

 public ActionResult Create()
    {
        return View();
    }

    // POST: HolidayRequestForms/Create
    // To protect from overposting attacks, please enable the specific properties you want to bind to, for 
    // more details see http://go.microsoft.com/fwlink/?LinkId=317598.
    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Create([Bind(Include = "RequestID,EmployeeID,StartDate,FinishDate,HoursTaken,Comments,YearCreated,MonthCreated,DayCreated,YearOfHoliday,Approved")] HolidayRequestForm holidayRequestForm)
    {
        if (ModelState.IsValid)
        {
            db.HolidayRequestForms.Add(holidayRequestForm);
            db.SaveChanges();
            return RedirectToAction("Index");
        }

        return View(holidayRequestForm);
    }

这是我尝试过的:

 public ActionResult Create([Bind(Include = "RequestID,EmployeeID,StartDate,FinishDate,HoursTaken,Comments,YearCreated,MonthCreated,DayCreated,YearOfHoliday,Approved")] HolidayRequestForm holidayRequestForm)
    {
        if (ModelState.IsValid)
        {
            holidayRequestForm.Approved = true;
            db.HolidayRequestForms.Add(holidayRequestForm);
            db.SaveChanges();
            return RedirectToAction("Index");
        }

        return View(holidayRequestForm);
    }

但它不起作用。

我希望只有在请求设置为 true 后才能将更改保存到数据库。

标签: asp.net-mvc

解决方案


尝试这个:

   public ActionResult Create([Bind(Include = "RequestID,EmployeeID,StartDate,FinishDate,HoursTaken,Comments,YearCreated,MonthCreated,DayCreated,YearOfHoliday,Approved")] HolidayRequestForm holidayRequestForm)
   {
      if (ModelState.IsValid && (holidayRequestForm.Approved == true))
      {
         db.HolidayRequestForms.Add(holidayRequestForm);
         db.SaveChanges();
         return RedirectToAction("Index");
       }

       return View(holidayRequestForm);
   }

推荐阅读