これに似たASP Web ApiとAngularプロジェクトのハイブリッドプロジェクトがあり、その中のApiControllersから電子メールを送信する必要があります。
私はMvcMailerが好きで、それを使いたいと思っています。実際にメールを送信することができました。ただし、 ApiController コンテキストにアクセスできViewBag
ないため、ビューにカスタム データを渡す方法がわかりません。ViewData
どんな助けでも大歓迎です。
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 ...
}
}
私はそれが最適ではないことを知っていますが、それが私がやったことであり、うまく機能します。それは役に立ちますか?