2014-03-29 59 views
2

我有混合項目的ASP Web Api和角度項目類似於this one,我需要從ApiControllers發送電子郵件。使用MvcMailer從WebApi項目中ViewBag不可用

我喜歡MvcMailer,我寧願使用它。我管理它實際發送電子郵件。但是,我不確定如何將自定義數據傳遞到視圖,因爲我無權訪問ApiController上下文中的ViewBagViewData

任何幫助表示讚賞。

+0

嘿!我有同樣的問題。其實我的電子郵件只是空的。你有沒有找到解決方法? 你可能想看看這個:https://github.com/smsohan/MvcMailer/issues/126 – Pedro

+0

你的問題是不完全相同的(和你引用的問題不幫助我)。我達到了我的電子郵件發送的地步,並且它不是空的。目前我無法用動態數據加強它。如果我找到解決方案,我會在這裏寫評論。 – Dmitry

回答

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

我知道這是不是最佳的,但是這就是我最後做,它工作正常。這會有幫助嗎?

相關問題