批准请求后将更改保存到日期库

时间:2019-01-22 08:25:27

标签: asp.net-mvc

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

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

他们创建申请表时,必须得到经理的批准。因此,在将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后,才能将更改保存到数据库中。

2 个答案:

答案 0 :(得分:0)

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

是的,一旦经理批准假期,将其存储在表中并在提交表单时进行检查,如下所示:

If(holidayRequestForm.Approved)
{
//Write your logic of form submission.
}

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

这取决于您的要求以及客户希望页面外观的方式。由于批准和提交逻辑将分开,因此开发其他页面会更好。

答案 1 :(得分:0)

尝试一下:

   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);
   }