안녕하세요, MVC 메일러를 사용하여 응용 프로그램에서 이메일을 만들고 보내는 것을 관리하고 있습니다. 그것은 만들고 이메일 괜찮아요하지만 레이아웃에 본문 내부에 삽입하는 모든 HTML은 이메일에 없습니다.MVC 메일러 레이아웃이 RenderBody 메서드와 다른 html을 렌더링하지 않습니다.
메일러는 내가 여기 _EmailLayout 사용하도록 설정하고
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);
});
}
}
, 나는 그것이 _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 에 다음과 같은 문제를 게시 한 후
레이아웃보기 경로가 잘못되었을 때 ('/'가 누락 된 경우) 똑같은 결과가 나타납니다. – Anth12