首页 > 解决方案 > 如何使用我的控制器通过电子邮件发送我的视图?

问题描述

我是 ASP.net MVC 的初学者,当我想用​​我的控制器通过电子邮件发送我的视图时遇到问题。我没有到达发送它,我只是发送一些文本

关于我已经尝试过的内容,我将向您展示代码。

(如果我的问题无法理解,请致电我,我会以不同方式解释)


// Page MailHelper.cs
// The tools for sending mail

        public static void SendMail(string body)
        {
            try
            {
                var mailto = ConfigurationManager.AppSettings["mailto"].Split(';');

                MailMessage mail = new MailMessage();
                mail.IsBodyHtml = true;
                SmtpClient SmtpServer = new SmtpClient(); 

                mail.From = new MailAddress("SendVersionsRobot@trysomething.fr");
                foreach (var m in mailto)   
                    mail.To.Add(m);    
                mail.Subject = "try send Mail";  
                mail.Body = body;     
                SmtpServer.Send(mail);   
            }
            catch (Exception ex)
            {

            }
        }

// Page MailController.cs
using....

namespace MvcMovie.Controllers
{
    public class MailController : Controller
    {
        public ActionResult pageDeTest()
        {
            MailHelper.SendMail(pageDeTest());
            return View();
        }
    }


}


<div id="demo"></div>


<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script type="text/javascript">
    $.getJSON("..\\..\\jsconfig.json", function (data) {
        $('#demo').html(JSON.stringify(data));
    });

    /*console.log("try");*/
</script>


标签: asp.net-mvc

解决方案


目前我的页面 MailController.cs 已经演变成这样:

命名空间 MvcMovie.Controllers { public class MailController : Controller { public ActionResult pageDeTest() { string myString = RenderPartialViewToString(MailHelper.SendMail()); MailHelper.SendMail(myString); 返回视图();}

    protected string RenderPartialViewToString(ControllerContext context, string viewName, object model)
    {
        var controller = context.Controller;

        if (string.IsNullOrEmpty(viewName))
            viewName = controller.ControllerContext.RouteData.GetRequiredString("action");

        ViewData.Model = model;

        using (StringWriter sw = new StringWriter())
        {
            ViewEngineResult viewResult = ViewEngines.Engines.FindPartialView(controller.ControllerContext, viewName);
            ViewContext viewContext = new ViewContext(controller.ControllerContext, viewResult.View, ViewData, TempData, sw);
            viewResult.View.Render(viewContext, sw);

            return sw.GetStringBuilder().ToString();
        }
    }

推荐阅读