C# McvMailer没有';我看不见风景
我想在我的应用程序中使用MvcMailer。我创建了一个名为MyMailer的新类库项目。现在我想在我的MVC应用程序中使用它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()
// 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项目在何处以及如何找到它们。您能否提供有关如何执行此操作的更多详细信息?这将使您走上正确的道路。您还可以使用此软件包节省一些时间:)