使用MvcMailer从WebApi项目发送电子邮件,其中ViewBag不可用

本文关键字:其中 ViewBag 电子邮件 MvcMailer WebApi 项目 使用 | 更新日期: 2023-09-27 17:54:38

我有一个类似于这个的ASP Web Api和angular项目的混合项目,我需要从其中的ApiControllers发送电子邮件。

我喜欢MvcMailer,我更喜欢用它。我设法用它来发送电子邮件。但是,我不确定如何将自定义数据传递给视图,因为我无法访问ApiController上下文中的ViewBagViewData

使用MvcMailer从WebApi项目发送电子邮件,其中ViewBag不可用

我知道你没有访问ViewBag/ViewData,这可能与你有一个WebAPI上下文(而不是MVC)有关。但是为什么不实例化邮件并传递参数呢?

[RoutePrefix("api/foo")]
public class FooController : ApiController
{
    [HttpPost]
    [Route("bar")]
    public void Bar(string foo, string bar)
    {
        MyMailer myMailer = new MyMailer();
        myMailer.MyAction(foo, bar).Send();
    }
}

:

public class MyMailer : MailerBase, IMyMailer   
{
    public virtual MvcMailMessage MyAction(string foo, string bar)
    {
        ViewBag.Foo = foo;
        ViewBag.Bar = bar;
        // Populate ...
    }
}

我知道这不是最优的,但这就是我最终所做的,它工作得很好。这有帮助吗?