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未呈现。

+0

当布局视图路径不正确(缺少'/')时,我得到了同样的结果。 – Anth12

张贴在github page for MVC Mailer 以下问题的布局代码更改为在此之后解决了这一问题

<html> 
<head> 
    <meta charset="utf-8" /> 
    <title></title> 
</head> 
<body> 

    Mailer 

    @RenderBody() 

    Thanks 

</body> 
</html> 

我不知道为什么,这解决了这一问题,但它没有。