Use Razor views as email templates inside a Web Forms app(在 Web 窗体应用程序中使用 Razor 视图作为电子邮件模板)
问题描述
我有一个需要发送电子邮件的 asp.net Web 窗体应用程序.我喜欢 Razor 语法,因为您可以在 MVC 之外使用 Razor,所以我想我会尝试使用它.我已经看到您可以通过编程方式将模板字符串传递给 razor,但我想将我的 razor 模板保留为单独的 .cshtml 文件.
I have an asp.net Web Forms application that needs to send emails. I like the Razor syntax and as you can use Razor outside of MVC I thought I'd try and use that. I've seen that you can programmatically pass a template string to razor but I'd like to keep my razor templates as separate .cshtml files.
有没有人有任何关于如何做到这一点的简单、防白痴的建议?我试过从这样的文件中加载它们:
Does anyone have any simple, idiot-proof advice as to how to do this? I've tried to load them from file like this:
UserDetails userDetails = new UserDetails {Name = "Fred"};
string template = File.OpenText("Email/UserDetailsEmail.cshtml").ReadToEnd();
string messageText = Razor.Parse(template, userDetails);
一切都无济于事.查找文件时出现异常.我正在使用 razorengine dll.
All to no avail. There's an exception finding the file. I'm using the razorengine dll.
我有其他一切工作,smtp 服务器等,只是没有视图.
I have everything else working, the smtp server etc, just not the views.
感谢任何帮助.
推荐答案
您需要获取文件的完整路径;相对路径最终会相对于错误的位置.
You need to get the full path to the file; relative paths will end up being relative to the wrong location.
写
File.OpenText(Server.MapPath("~/Email/UserDetailsEmail.cshtml"))
这篇关于在 Web 窗体应用程序中使用 Razor 视图作为电子邮件模板的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:在 Web 窗体应用程序中使用 Razor 视图作为电子邮
基础教程推荐
- C# - 将浮点数转换为整数...并根据余数更改整数 2022-01-01
- 我什么时候应该使用 GC.SuppressFinalize()? 2022-01-01
- 覆盖 Json.Net 中的默认原始类型处理 2022-01-01
- Page.OnAppearing 中的 Xamarin.Forms Page.DisplayAlert 2022-01-01
- 如何使用OpenXML SDK将Excel转换为CSV? 2022-01-01
- 从 VB6 迁移到 .NET/.NET Core 的最佳策略或工具 2022-01-01
- C# - 如何列出发布到 ASPX 页面的变量名称和值 2022-01-01
- 当键值未知时反序列化 JSON 2022-01-01
- 使用 SED 在 XML 标签之间提取值 2022-01-01
- 创建属性设置器委托 2022-01-01