在 Web 表单应用程序中使用 Razor 视图作为电子邮件模板

发布于 2024-11-07 10:36:26 字数 536 浏览 4 评论 0原文

我有一个需要发送电子邮件的 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 服务器等,只是视图不行。

任何帮助表示赞赏。

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);

All to no avail. There's an exception finding the file. I'm using the razorengine dll.

I have everything else working, the smtp server etc, just not the views.

Any help appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

江心雾 2024-11-14 10:36:26

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

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

You need to get the full path to the file; relative paths will end up being relative to the wrong location.

Write

File.OpenText(Server.MapPath("~/Email/UserDetailsEmail.cshtml"))
枕花眠 2024-11-14 10:36:26

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

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

https://github.com/smsohan/MvcMailer< /a>

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

I would use the MVCMailer tool which you can setup with Nuget and has scaffolding for creating the views.

It is a very well written app and can be added to yours easily:

https://github.com/smsohan/MvcMailer

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文