我有一个需要发送电子邮件的 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 服务器等,只是 View 没有。
感谢任何帮助。
最佳答案
您需要获取文件的完整路径;相对路径最终将相对于错误的位置。
写
File.OpenText(Server.MapPath("~/Email/UserDetailsEmail.cshtml"))
关于asp.net - 在 Web 表单应用程序中使用 Razor View 作为电子邮件模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6031474/