2012-10-05 52 views
0

我使用MVC梅勒 - 我有這個在我的控制器:MVC梅勒通過一個模型來郵件視圖

// 
    // POST: /ExhibitorInterest/Create 

    [HttpPost] 
    public ActionResult Create(ExhibitorInterest exhibitorinterest) 
    { 
     if (ModelState.IsValid) 
     { 
      db.ExhibitorInterests.Add(exhibitorinterest); 
      db.SaveChanges(); 

      UserMailer.ExhibitorInterest().Send(); 

      return RedirectToAction("Thankyou"); 
     } 

     return View(exhibitorinterest); 
    } 

但我想模型exhibitorinterest傳遞給郵件視圖:

的UserMailer.cs有:

public virtual MvcMailMessage ExhibitorInterest() 
    { 
     //ViewBag.Data = someObject; 
     return Populate(x => 
     { 
      x.Subject = "ExhibitorInterest"; 
      x.ViewName = "ExhibitorInterest"; 
      x.To.Add("[email protected]"); 
     }); 
    } 

任何想法如何,我得到exhibitorinterest進入UserMailer.cs - 這樣我就可以把它添加到郵件視圖嗎?

謝謝

馬克

+0

我做了後類似的東西 - 但已經擺脫了在GitHub上出的基本示例困惑 - 並嘗試使用最佳實踐 - 所以道歉,如果這似乎是一個重新發布 - 現在我已經有了3郵件視圖 - 其中之一是上面的,所以對我來說變得越來越複雜,並保持清潔。謝謝。 – Mark

回答

3

想我想通了 - 改變IUSerMailer.cs到簽名:

public interface IUserMailer 
{ 
MvcMailMessage ExhibitorInterest(ExhibitorInterest exhibitorinterest); 

而且UserMail.cs到:

public virtual MvcMailMessage ExhibitorInterest(ExhibitorInterest exhibitorinterest) 
{ 
ViewBag.Data = exhibitorinterest.xxxxxxx; 

希望它可以幫助別人。

謝謝,馬克