首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >我可以使用HTML视图生成格式良好的ASP.Net正文作为从服务器发送的电子邮件的输入吗?

我可以使用HTML视图生成格式良好的ASP.Net正文作为从服务器发送的电子邮件的输入吗?
EN

Stack Overflow用户
提问于 2011-03-11 06:17:24
回答 7查看 14.1K关注 0票数 21

我想利用Razor视图的模型绑定/呈现功能来为我从ASP.NET MVC应用程序发送的电子邮件生成HTML体内容。

有没有办法将视图呈现为字符串,而不是将其作为GET请求的ActionResult返回?

为了说明,我正在寻找将执行以下操作的东西……

代码语言:javascript
复制
    public ActionResult SendEmail(int id)
    {
        EmailDetailsViewModel emailDetails = EmailDetailsViewModel().CreateEmailDetails(id);

        // THIS IS WHERE I NEED HELP...
        // I want to pass my ViewModel (emailDetails) to my View (EmailBodyRazorView) but instead of Rending that to the Response stream I want to capture the output and pass it to an email client.
        string htmlEmailBody = View("EmailBodyRazorView", emailDetails).ToString();

        // Once I have the htmlEmail body I'm good to go.  I've got a utilityt that will send the email for me.
        MyEmailUtility.SmtpSendEmail("stevejobs@apple.com", "Email Subject", htmlEmailBody);

        // Redirect another Action that will return a page to the user confirming the email was sent.
        return RedirectToAction("ConfirmationEmailWasSent");
    }
EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2011-03-11 07:08:49

如果您只需要将视图呈现为一个字符串,请尝试如下所示:

代码语言:javascript
复制
public string ToHtml(string viewToRender, ViewDataDictionary viewData, ControllerContext controllerContext)
{
    var result = ViewEngines.Engines.FindView(controllerContext, viewToRender, null);

    StringWriter output;
    using (output = new StringWriter())
    {
        var viewContext = new ViewContext(controllerContext, result.View, viewData, controllerContext.Controller.TempData, output);
        result.View.Render(viewContext, output);
        result.ViewEngine.ReleaseView(controllerContext, result.View);
    }

    return output.ToString();
}

您需要传入视图的名称以及来自控制器操作的ViewData和ControllerContext。

票数 28
EN

Stack Overflow用户

发布于 2011-03-11 06:20:16

您可以查看Postal,了解如何使用视图发送电子邮件。

票数 10
EN

Stack Overflow用户

发布于 2011-03-11 06:20:23

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5266586

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档