我有一个需要发送电子邮件的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服务器等,而不是视图。
任何帮助表示感谢。
答案 0 :(得分:4)
您需要获取文件的完整路径;相对路径将最终相对于错误的位置。
写
File.OpenText(Server.MapPath("~/Email/UserDetailsEmail.cshtml"))
答案 1 :(得分:1)
我会使用你可以使用Nuget设置的MVCMailer工具,并且有脚手架来创建视图。
这是一个写得很好的应用程序,可以轻松添加到您的应用程序中: