2014-06-13 48 views
0

我已將.NET項目從.Net Framework 4轉換爲4.5。關鍵字「填充」的命名空間C#(MvcMailer)

我這樣做是爲了利用Nuget包MvcMailer。

一切都很好,除了在UserMailer類下面的代碼存在:

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

的填充字拋出一個錯誤: 「填充」這個名字並不在當前的背景下

要存在哪些命名空間是否填充詞屬於? 還是擴展?

我在網上找不到任何東西。

回答

1

這是MailerBase控制器與此簽名(from source code on GitHub)類方法:

public virtual MvcMailMessage Populate(Action<MvcMailMessage> action) 

要使用它,你必須從MailerBase派生控制器(它是郵件程序的基類你的郵件應該繼承MailerBase )。

例如,假設你的控制器被命名爲Home,來自:

public class Home : Controller { 

要:

public class Home : MailerBase { 

它在Mvc.Mailer命名空間(同MvcMailerMessage類的),反正它不是一個擴展方法,所以你甚至不需要擔心它。

0

將光標置於關鍵字上並點擊Alt+Shift+F10。它會告訴你它是源代碼,你可以包含整個名稱空間,或者只使用一次關鍵字。它只會在你的項目中有一個正確的.dll引用時才起作用。

0

我想你從這個GitHub倉庫獲得了代碼。

https://github.com/smsohan/MvcMailer/wiki/MvcMailer-Step-by-Step-Guide

​​3210

此代碼是由包的開發者提供的,他展示瞭如何用它來編輯MvcMailer。

如果是這樣,那裏的人在他的C#文件的頂部使用了這些命名空間。

using Mvc.Mailer; 

所以,我想這將是這個命名空間的一部分。將它包含到你的項目中,你就完成了!

+0

不是。這是一個控制器方法,它從控制器內調用(=未找到方法)。您不需要包含名稱空間(無論如何它都包含在內,因爲他使用MvcMailMessage類作爲結果)。問題來自錯誤的控制器。 –