C# 发送包含数据的电子邮件(ASP.NET mvc)

C# 发送包含数据的电子邮件(ASP.NET mvc),c#,asp.net,asp.net-mvc,email,C#,Asp.net,Asp.net Mvc,Email,我需要通过点击按钮发送电子邮件 我为电子邮件制作模型 public class MailModel { public string From { get; set; } public string To { get; set; } public string Subject { get; set; } public string Body { get; set; } public bool IsShowAlert { get; set; } } 并在控制

我需要通过点击按钮发送电子邮件

我为电子邮件制作模型

public class MailModel
{
    public string From { get; set; }
    public string To { get; set; }
    public string Subject { get; set; }
    public string Body { get; set; }
    public bool IsShowAlert { get; set; }
}
并在控制器中这样制作方法

 [HttpPost]
        public ViewResult Index(Models.MailModel _objModelMail)
        {
            if (ModelState.IsValid)
            {
                MailMessage mail = new MailMessage();
                mail.To.Add(_objModelMail.To);
                mail.From = new MailAddress(_objModelMail.From);
                mail.Subject = _objModelMail.Subject;
                string Body = _objModelMail.Body;
                mail.Body = Body;
                mail.IsBodyHtml = true;
                SmtpClient smtp = new SmtpClient();
                smtp.Host = "smtp.gmail.com";
                smtp.Port = 587;
                smtp.UseDefaultCredentials = false;
                smtp.Credentials = new System.Net.NetworkCredential
                ("suhomlin.eugene95@gmail.com", "dontoretto23");// Enter seders User name and password
                smtp.EnableSsl = true;
                smtp.Send(mail);

                return View("Index", (IEnumerable<Clients>) _objModelMail);
            }
            else
            {
                return View();
            }
        }

如何做到这一点?

模型旨在从UI来回传递数据。在这种情况下,您并不是真正从用户那里收集信息。你已经有了

有几种方法可以做到这一点。我个人建议您执行一个操作,获取id、提取用户信息并创建电子邮件:

public ActionResult SendEmail(int id)
{
     //Retrieve the user data and create e-mail here.
     return RedirectToAction("Index","YourController");
}
请注意末尾的重定向,将用户发送回触发电子邮件发送的视图

那么在你看来,

@Html.ActionLink("Send E-mail", "SendEmail", new {id = item.ID})

这是一个过于简化的版本,你应该考虑某些事情,比如安全和帖子,但我想你会有这个想法……-——)p> 在此处发布您的观点我希望您不仅仅发布您的电子邮件凭据。哈哈,不,当然@juanUpdate my post@teovankotI没有看到

元素,我也没有看到任何按钮。我确实看到了一些链接。如果您试图向服务器发送任何用户输入,您需要一个带有“提交”按钮的表单。据我所知,我需要具有“发送电子邮件”视图,但我希望直接从此服务器发送电子邮件view@E.S:否定。发送电子邮件后,只需将用户重定向到您之前执行的操作(可能是“索引”)。我正在更新我的答案,以说明我提到的重定向。
public ActionResult SendEmail(int id)
{
     //Retrieve the user data and create e-mail here.
     return RedirectToAction("Index","YourController");
}
@Html.ActionLink("Send E-mail", "SendEmail", new {id = item.ID})