首页 > 解决方案 > 在编辑中进行特定更改时调用操作

问题描述

我创建了一个 Crud 对象来跟踪员工假期,在我的 HTTP Post EDIT 方法中,我想在经理编辑将布尔状态从 更改为 的请求时使用电子邮件操作(已经有效pendingapproved

这是我尝试过的,但我的 c# 还没有达到标准。

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit([Bind(Include = "RequestID,EmployeeID,StartDate,FinishDate,HoursTaken,Comments,YearCreated,MonthCreated,DayCreated,YearOfHoliday,Approved,SubmittedBy,ApprovedBy")] HolidayRequestForm holidayRequestForm)
{
    if (ModelState.IsValid)
    {
        if (Session["Name"] == null)
        {
            TempData["msg"] = "Your Session Expired - Please Login";
            return RedirectToAction("Login", "Account");
        }

        string name = Session["Name"].ToString();

        var approvedby = db.Employees.Where(s => s.Email.Equals(name)).Select(s => s.Email).FirstOrDefault();
        holidayRequestForm.ApprovedBy = approvedby;

        db.Entry(holidayRequestForm).State = EntityState.Modified;
        db.SaveChanges();

        var ApprovedStatus = db.HolidayRequestForms.Select(h => h.Approved) ;

        if ( ApprovedStatus = true){
           SendMailToManager();
        }

        return RedirectToAction("Index");
    }
    ViewBag.EmployeeID = new SelectList(db.Employees, "EmployeeID", "FullName", holidayRequestForm.EmployeeID);
    return View(holidayRequestForm);
}

当经理将请求的状态编辑为 true 时,如何让它发送电子邮件(调用 SendMailToManager() 操作)?

标签: c#asp.net-mvc

解决方案


让它适用于任何偶然发现此问题的人。简直就是

 [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Edit([Bind(Include = "RequestID,EmployeeID,StartDate,FinishDate,HoursTaken,Comments,YearCreated,MonthCreated,DayCreated,YearOfHoliday,Approved,SubmittedBy,ApprovedBy")] HolidayRequestForm holidayRequestForm)
    {
        if (ModelState.IsValid)
        {

            if (Session["Name"] == null)
            {
                TempData["msg"] = "Your Session Expired - Please Login";
                return RedirectToAction("Login", "Account");
            }

            string name = Session["Name"].ToString();

            var approvedby = db.Employees.Where(s => s.Email.Equals(name)).Select(s => s.Email).FirstOrDefault();
            holidayRequestForm.ApprovedBy = approvedby;

            db.Entry(holidayRequestForm).State = EntityState.Modified;
            db.SaveChanges();






            if ( holidayRequestForm.Approved == true){

                SendMailToAreaManager();
                SendMailToManager();
                SendMailToAdmin();

            }

推荐阅读