2

これに似たASP Web ApiとAngularプロジェクトのハイブリッドプロジェクトがあり、その中のApiControllersから電子メールを送信する必要があります。

私はMvcMailerが好きで、それを使いたいと思っています。実際にメールを送信することができました。ただし、 ApiController コンテキストにアクセスできViewBagないため、ビューにカスタム データを渡す方法がわかりません。ViewData

どんな助けでも大歓迎です。

4

1 に答える 1

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 ...
    }
}

私はそれが最適ではないことを知っていますが、それが私がやったことであり、うまく機能します。それは役に立ちますか?

于 2014-04-05T19:13:54.607 に答える