我有ASP Web Api和角度项目的混合项目,类似于this one,我需要从其中发送ApiControllers的电子邮件。
我喜欢MvcMailer而我更喜欢使用它。我设法实际发送电子邮件。但是,我不确定如何将自定义数据传递给视图,因为我无法访问ApiController上下文中的ViewBag
或ViewData
。
感谢任何帮助。
答案 0 :(得分:1)
我知道您无法访问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 ...
}
}
我知道这不是最佳的,但这就是我最终做的事情并且工作正常。那会有帮助吗?