You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FluentEmail发送邮件时引用部分模板失效,求正确使用方法

在.NET 6中使用FluentEmail正确引用部分模板的方法
  • 规范模板命名与路径
    部分模板建议用_XXXPartial.cshtml命名(避免和布局文件命名混淆),若和主模板在同一目录,直接写<partial name="_NeedHelpPartial" />;若放在子目录(比如Partials文件夹),需写完整相对路径:<partial name="Partials/_NeedHelpPartial" />

  • 切换到Razor渲染器
    FluentEmail默认的文件模板解析器不支持Razor的partial语法,必须使用FluentEmail.Razor包:

    1. 安装NuGet包:Install-Package FluentEmail.Razor
    2. 在Program.cs中注册服务:
      builder.Services.AddFluentEmail("your-sender@example.com")
          .AddRazorRenderer()
          .AddSmtpSender("smtp.example.com", 587); // 根据实际邮件发送方式替换
      
  • 使用正确的模板渲染方法
    替换原有的UsingTemplateFromFile为Razor专属的UsingRazorTemplateFromFile,确保所有Razor语法(包括partial)被解析:

    var email = await Email
        .From("sender@example.com")
        .To("user@example.com")
        .Subject("重置密码")
        .UsingRazorTemplateFromFile(@"Templates/ForgotPassword.cshtml", forgotPasswordModel)
        .SendAsync();
    
  • 检查部分视图的模型传递(如需)
    如果部分视图依赖模型数据,引用时要明确传递:

    <partial name="_NeedHelpPartial" model="@Model.HelpContactInfo" />
    

    同时确保部分视图的@model声明和传递的模型类型匹配。

内容的提问来源于stack exchange,提问作者edward

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 17:45:05