MVC邮寄者布局不渲染任何其他HTML RenderBody方法
问题描述:
您好我正在使用MVC梅勒管理创建和发送我的应用程序中的电子邮件。它会创建并发送电子邮件,但是我在布局中正文中插入的任何html都不在电子邮件中。MVC邮寄者布局不渲染任何其他HTML RenderBody方法
梅勒
public class Mailer : MailerBase, IMailer
{
public aMailer()
{
MasterName = "_EmailLayout";
}
public virtual MvcMailMessage RequestAccess(RequestAccessViewModel viewmodel)
{
ViewData.Model = viewmodel;
return Populate(x =>
{
x.Subject = "RequestAccess for Data";
x.ViewName = "RequestAccess";
x.To.Add("[email protected]");
x.From = new MailAddress(viewmodel.Email);
});
}
}
我将其设定为在这里使用_EmailLayout,我看到,有与它命名_layout的问题,因为这将与名为_layout任何其他文件相冲突后cahnged名称。
_EmailLayout
<html>
<head>
</head>
<body>
<h1>Mailer</h1>
@RenderBody()
Thanks
</body>
的H1标签的内容或 “谢谢” 都没有在电子邮件
Access.cshtml
<h3>"This is a Application email." </h3>
<p>@Model.Message</p>
<br/>
<p>Regards</p>
<p>@Model.Name</p>
<p>Business Area: @Model.BusinessArea</p>
电子邮件来源
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii"><title></title>
</head>
<body>
<p> Hi jeff test,</p>
<br>
<p>Thank you for your enquiry about the Application.</p>
<br>
</body>
有没有人碰到这个问题之前来的呢?当我调试我的应用程序时,我可以看到它正在进入_EmailLayout,但我不知道为什么该文件中的HTML未呈现。
答
张贴在github page for MVC Mailer 以下问题的布局代码更改为在此之后解决了这一问题
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
Mailer
@RenderBody()
Thanks
</body>
</html>
我不知道为什么,这解决了这一问题,但它没有。
当布局视图路径不正确(缺少'/')时,我得到了同样的结果。 – Anth12