2013-04-08 161 views
1

使用ActionMailer,可以为视图指定布局页面吗?如果是这样,布局页面应该是一个常规的cshtml视图还是它也需要html.cshtml/txt.cshtml?ASP.NET MVC ActionMailer电子邮件布局?

我已经评论了一些我尝试指定布局的行,但它没有奏效。

MailController

public EmailResult Welcome(User userInfo) 
    { 
     /*Create ViewModel*/ 
     To = "[email protected]"; 
     From = "[email protected]"; 
     Subject = "Welcome!"; 

     /*return Email("Welcome",welcomeVM,"EmailLayout",true);*/ 
     return Email("Welcome", welcomeVM); 
    } 

Welcome.html.cshtml

@model WelcomeVM 
{ 
    //Layout = "EmailLayout" 
    Layout = null; 
} 

@*Email Contents Here*@ 
+0

你使用这个库? https://github.com/smsohan/MvcMailer/wiki/MvcMailer-Step-by-Step-Guide – 2013-04-08 16:30:12

+0

不,这是'ActionMailer' http://nuget.org/packages/ActionMailer/。 – user1620141 2013-04-08 16:31:54

回答

0

我已经习惯了MvcMailer库。但是,请尝试以这种方式指定布局页面:

@{ 
    Layout = "~/Views/Shared/MyLayout.cshtml"; 
} 

只需确保布局页面存在于指定的路径中。

ActionMailer's doc page在步骤2中,它提到,它是可以使用布局:

现在,我们需要创建此邮件视图。该视图可以使用任何您喜欢的ViewEngine,它甚至可以与母版页(或Razor中的 布局)一起使用。这些意见与您的正常观点 所处的地点相同。

+0

工作。看起来很明显,现在-_-。谢谢! – user1620141 2013-04-08 16:45:40