如何使用数据库 Asp.Net MVC 中的电子邮件地址在 Postal 上发送电子邮件

How to send an email on Postal using an email address from the database Asp.Net MVC

我目前已经实现了 Postal,我正在使用它在我的 MVC 应用程序上发送电子邮件。我遇到的问题是我想从我的数据库中检索一个电子邮件地址,而不是硬编码我想将电子邮件发送到的地址。

因此,请提供一些关于我想在哪里实现它的上下文。创建订单后,我想向链接到该订单的医院发送一个电子邮件地址。

这是我尝试过的方法,但它会在这一行引发异常 email.To = order.Hospital.Email; - 如果我对电子邮件地址进行硬编码,它确实有效,例如 email.To = "hospital@hospital.com".

An exception of type 'System.NullReferenceException' occurred in HealthHabitat.dll but was not handled in user code

我已将其包含在我的 Create POST method 中,以便在模型保存后触发。

电子邮件地址在我的医院模型中被保存为字符串

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "OrderID,HospitalID,StaffID,Date,Time,Expected_Date")] Order order)
{
    if (ModelState.IsValid)
    {
        order.StaffID = 5;
        db.Orders.Add(order);
        db.SaveChanges();
        dynamic email = new Email("Example");
        email.To = order.Hospital.Email; // this is where you set the email you are sending to. 
        email.Send();
        Success(string.Format("<i class='fa fa-plus-circle'></i> Please Add your Items!", order.OrderID), true);
        return RedirectToAction("Details", new { id = order.OrderID });
    }


    ViewBag.HospitalID = new SelectList(db.Hospitals, "HospitalID", "Name", order.HospitalID);
    Danger("<i class='fa fa-warning'></i> Error!", true);
    return View(order);
}

有人对此有解决方案吗?非常感谢并提前致谢!

如果需要任何其他信息,请告诉我,我会将其添加到问题中。

医院型号:

public class Hospital
{
    public int HospitalID { get; set; }

    public string Name { get; set; }

    public string Province { get; set; }

    public string Email { get; set; }

    public string Phone_Number { get; set; }


    public virtual ICollection<Order> Orders { get; set; }
}
}

你可以这样做:

order.StaffID = 5;
db.Orders.Add(order);
db.SaveChanges();

//select hospital from database.
Hospital hospital = db.Hospitals.First(h => h.HospitalId == order.HospitalId);

dynamic email = new Email("Example");
email.To = hospital.Email; // this is where you set the email you are sending to. 
email.Send();