4

我正在使用 MVCMailer 并尝试从 WebApi 发送邮件,但邮件总是以空消息到达。

视图位于 /Views/Account/CreateUser.cshtml

这是我的代码

public class Account: MailerBase
{

    public MvcMailMessage CreateUser(CreateNewAccount model)
    {
        return Populate(x =>
                            {
                                x.Subject = model.Subject;
                                x.ViewName = "CreateUser";
                                x.To.Add(model.Email);
                                ViewData.Model = model;
                            });
    }

当我从经典 MVC 控制器发送电子邮件时,电子邮件正确到达,但从 APiControler 发送的邮件正文为空。

[解决] 视图必须在主视图文件夹中,而不是在区域中。在我的情况下 /Views/Account/CreateUser.cshtml

4

1 回答 1

1

我想我想出了一个解决方法(花了我几个小时的时间挖掘)。就我而言,我有:

  • 公开 REST 端点的 Web API 项目
  • 包含电子邮件模板(视图)的 MvcMailer MVC 项目

从 Web API 项目中根本找不到视图,因为它们位于引用的程序集(MvcMailler 项目)中。显然这是一个非常普遍的问题。我通过安装 EmbeddedResourceVirtualPathProvider Nuget 包(https://github.com/mcintyre321/EmbeddedResourceVirtualPathProvider)修复了它,它(几乎)开箱即用!

为了更好地了解发生了什么:

希望能帮助到你 :)

于 2014-04-04T06:24:58.120 回答