将Razor视图用作Web窗体应用程序中的电子邮件模板

时间:2011-05-17 13:27:24

标签: asp.net webforms razor email-templates

我有一个需要发送电子邮件的asp.net Web窗体应用程序。我喜欢Razor语法,因为你可以在MVC之外使用Razor我以为我会尝试使用它。我已经看到你可以以编程方式将模板字符串传递给razor,但我想将我的剃刀模板保存为单独的.cshtml文件。

有没有人对如何做到这一点有任何简单,愚蠢的建议?我试过从这样的文件中加载它们:

UserDetails userDetails = new UserDetails {Name = "Fred"};
string template = File.OpenText("Email/UserDetailsEmail.cshtml").ReadToEnd();            
string messageText = Razor.Parse(template, userDetails);

一切都无济于事。查找文件时出现异常。我正在使用razorengine dll。

我还有其他工作,smtp服务器等,而不是视图。

任何帮助表示感谢。

2 个答案:

答案 0 :(得分:4)

您需要获取文件的完整路径;相对路径将最终相对于错误的位置。

File.OpenText(Server.MapPath("~/Email/UserDetailsEmail.cshtml"))

答案 1 :(得分:1)

我会使用你可以使用Nuget设置的MVCMailer工具,并且有脚手架来创建视图。

这是一个写得很好的应用程序,可以轻松添加到您的应用程序中:

https://github.com/smsohan/MvcMailer

http://www.codeproject.com/KB/aspnet/MvcMailerNuGet.aspx