C# McvMailer没有';我看不见风景

C# McvMailer没有';我看不见风景,c#,asp.net-mvc-4,mvcmailer,C#,Asp.net Mvc 4,Mvcmailer,我想在我的应用程序中使用MvcMailer。我创建了一个名为MyMailer的新类库项目。现在我想在我的MVC应用程序中使用它 // mailer public class MyMailer : MailerBase, IEdoctorMailer { public MyMailer() { MasterName = "_Layout"; } public virtual MvcMailMessage Invitation()

我想在我的应用程序中使用MvcMailer。我创建了一个名为MyMailer的新类库项目。现在我想在我的MVC应用程序中使用它

// mailer    
public class MyMailer : MailerBase, IEdoctorMailer  
{
    public MyMailer()
    {
        MasterName = "_Layout";
    }

    public virtual MvcMailMessage Invitation()
    {
        //ViewBag.Data = someObject;
        var msg = Populate(x =>
        {
            x.Subject = Labels.Invitation;
        x.ViewName = "Invitation";
        x.From = new MailAddress("xxx@gmail.com");
        x.To.Add("yyy@gmail.com");
        });

        return msg;
    }
}

//mvc controller
IMyMailer mailer = new MyMailer();
var inv = mailer.Invitation();
inv.Send(new DefaultSmtpClient()); // see below

public class DefaultSmtpClient : SmtpClient, ISmtpClient
{
    public DefaultSmtpClient() : base("smtp.gmail.com", 587)
    {
        EnableSsl = true;
        UseDefaultCredentials = false;
        Credentials = new NetworkCredential("login", "pass");         
    }

    public void SendAsync(MailMessage mailMessage)
    {
        throw new NotImplementedException();
    }
}
在MyMailer项目中的
Views/MyMailer/Invitation.cshtml
中有一个文件,其中包含一些文本

当我发送电子邮件时,它实际上已经到达了。但此邀请视图不包括在内(根本没有正文)。我假设这是因为Send方法是从mvc项目执行的,但这只是我的猜测

我甚至在
视图/MyMailer/\u Layut.cshtml-->RenderBody()
中设置了一个断点,但它从未进入


如何包含视图?

由于您是MVC编译器,视图位于类库中,因此您必须通过覆盖ViewEngine或VirtualPathProvider来告诉MVC项目在何处以及如何找到它们。

您能否提供有关如何执行此操作的更多详细信息?这将使您走上正确的道路。您还可以使用此软件包节省一些时间:)