通过smtp发送电子邮件后显示消息

时间:2017-08-30 09:06:06

标签: c# asp.net asp.net-mvc

我创建了一个反馈表单,并通过电子邮件发送给管理员SMTP Server。我已经成功发送了它。现在我要显示发送成功的电子邮件  发送电子邮件后的消息。我正在使用Response.Write,但效果不佳。我为此目的使用了AjaxJquery和许多其他解决方案,但他们没有给我带来好结果。

FeedbackController.cs

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "Id,Name,Email,Comments")] Feedback feedback, string Message)
{
    if (ModelState.IsValid)
    {
        bool result = false;
        db.Feedbacks.Add(feedback);
        db.SaveChanges();
        result = SendEmail("abc@gmail.com", "Feedback", "<p>Hi Admin,<br/>My name is "+ feedback.Name + ". <br/> E_mail ID: " + feedback.Email + "<br/><br/>" + feedback.Comments + "<br/>Kind Regards,<br/>" + feedback.Name + "</p>");
        Response.Write("Email sent succeed");
        ModelState.Clear();
        return View("Create");
    }
    return View(feedback);        
}

1 个答案:

答案 0 :(得分:2)

您可以执行以下操作:

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "Id,Name,Email,Comments")] Feedback feedback, string Message)
{
  if (ModelState.IsValid)
  {
     //your code    
      TempData["EmailSent"] = "Email sent succeed";   
      return View("Create");
  }
  return View(feedback);
}

在“创建视图”

@if (TempData["EmailSent"] != null)
{
    <p>@TempData["EmailSent"].ToString()</p>
}

这只是一种方法,您可以利用ViewBag属性来实现这一目标