我在我创建的模块中使用 MvcMailer 和 Orchard CMS,虽然我可以用它来发送电子邮件,但电子邮件正文是空的,让我相信 Orchard 没有接收“/[模块]/Views/[NameOfMailerFolder/_Layout.cshtml"或 ".../[NameofMailerView].cshtml"。
起初我认为将“/[Module]/Views/[NameOfMailerFolder]”移动到“/[ThemeBeingUsed]/Views”文件夹或 Orchard.Web 的“/Views”文件夹可能会起作用(我认为只是没有找到路径)。但运气不佳。
我尝试在模块中使用route.cs,但我不知道是否可以将 CONTROLLER 和 ACTION 留空(“”)并将“/[Module]/Views/[NameOfMailerFolder] “只在那里。无论如何,我为“[NameOfMailerView].cshtml”创建了一条路线,但这也不起作用。我想知道这是否是正确的方法(我没有在 Controller 中设置操作,但我正在考虑这样做 - 只是必须重定向?)。
我有点迷失,所以我感谢任何指导。
最佳答案
事实证明,Mailer 代码使用了 MasterName,这似乎会导致 Orchard CMS 的处理方式出现问题。
这就是让它为我工作的原因(使用 1.3 或 Orchard.Web):
public QuoteMailers()
: base()
{
//LEAVE OUT FOLLOWING FOR MVC MAILER TO WORK
//MasterName = "_Layout";
}
QuoteMailers 只是我的名字,如果你在 VS 中使用 Package Manger Console,MvcMailer 会根据你使用的参数创建一个名称。
注释掉 MasterName 才是有效的!这个“hack”的唯一缺点是我不使用通用的 _Layout 文件。对我来说这没什么大不了的,因为我能够使用 Partials。
关于mvcmailer - 消息中没有正文(MvcMailer + Orchard CMS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6748970/