0

私は現在Postalを実装しており、それを使用して MVC アプリケーションでメールを送信しています。私が抱えている問題は、電子メールの送信先アドレスをハードコーディングするのではなく、データベースから電子メール アドレスを取得したいということです。

ですから、これを実装したい場所について少し説明します。注文を作成した後、その注文にリンクされている病院に電子メール アドレスを送信したいと考えています。

これは私が試したものですが、この行で例外がスローされemail.To = order.Hospital.Email;ます。たとえば、次のように電子メールアドレスをハードコーディングすると機能します。email.To = "hospital@hospital.com".

タイプ 'System.NullReferenceException' の例外が HealthHabitat.dll で発生しましたが、ユーザー コードで処理されませんでした

Create POST methodモデルが保存されるとトリガーされるように、これをmy に含めました。

電子メール アドレス病院モデルに文字列として保存されます。

[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; }
}
}
4

1 に答える 1

1

次のようなことができます。

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();
于 2015-10-02T17:58:34.343 に答える