Mvc.Mailer发送空体邮件C#webApi

时间:2013-04-26 08:44:37

标签: c# asp.net-web-api mvcmailer

我正在使用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邮件正文发送是空的。

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

1 个答案:

答案 0 :(得分:1)

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

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

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

更好地了解正在发生的事情:

希望有所帮助:)