2

我有一个需要发送电子邮件的 asp.net Web 表单应用程序。我喜欢 Razor 语法,因为你可以在 MVC 之外使用 Razor,所以我想我会尝试使用它。我已经看到您可以以编程方式将模板字符串传递给 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 服务器等,只是没有意见。

任何帮助表示赞赏。

4

2 回答 2

4

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

File.OpenText(Server.MapPath("~/Email/UserDetailsEmail.cshtml"))
于 2011-05-17T13:44:12.453 回答
1

我会使用 MVCMailer 工具,您可以使用 Nuget 进行设置,并使用脚手架来创建视图。

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

https://github.com/smsohan/MvcMailer

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

于 2011-05-17T13:32:52.717 回答