2015-12-21 22 views
2

我正在使用郵政在我的asp.net mvc應用程序中使用郵政服務發送電子郵件現在問題是我只能在特定情況下發送CC電子郵件,我必須這個字段是可選的,但我沒有達到這個目標。以下是我對這段代碼:如何使用郵政asp.net使CC字段可選

查看文件:

@model OAC.Helpers.EmailHelper 

To: @Model.To 
Form: @Model.From 
CC: @Model.CC 
Subject: @Model.Subject 


Hello, 

@Model.Body 

@Model.Link 

public class EmailHelper : Email 
{ 
    public string To { get; set; } 
    public string CC { get; set; } 
    public string Body { get; set; } 
    public string Subject { get; set; } 
    public string From { get; set; } 
    public string Link { get; set; } 
    public static void SendEmailNotification(string emailAddress, string body, string link, string subject, string from = "OAC Support", string CC = null) 
    { 
     // Prepare Postal classes to work outside of ASP.NET request 
     var viewsPath = Path.GetFullPath(HostingEnvironment.MapPath(@"~/Views/Emails")); 
     var engines = new ViewEngineCollection(); 
     engines.Add(new FileSystemRazorViewEngine(viewsPath)); 
     var emailService = new EmailService(engines); 
     var email = new EmailHelper 
     { 
      To = emailAddress, 
      CC = CC, 
      Body = body, 
      Subject = subject, 
      From = from, 
      Link = link 
     }; 
     emailService.Send(email); 
    } 
} 

現在我想在視圖中的CC場可選的,所以,當CC是「空」的觀點忽略了「@ Model.CC」領域。如下:

@model OAC.Helpers.EmailHelper 

To: @Model.To 
Form: @Model.From 
if(Model.CC != null) 
{ 
CC: @Model.CC 
} 
Subject: @Model.Subject 


Hello, 

@Model.Body 

@Model.Link 

請幫助!謝謝。

+0

對[C#可選屬性]看看(http://stackoverflow.com/a/1699786/3796048) –

+0

@MohitShrivastava我試圖做到這一點使用「可選」數據註解,但是我不能在我的項目中找到它的命名空間,可以引導我指出我需要爲此添加哪個命名空間? –

回答

1

你非常接近,只是改變視圖。在CC之前需要「@:」:@ Model.Cc

例如,

@if (Model.Cc != null) 
{ 
    @:CC: @Model.Cc 
} 
0

在您的道具上使用[Optinal]屬性。

[Optinal] public string CC {get;組; }

建議

您可以使用該模型來發送數據。

public class EMailModel 
{ 

     public string To { get; set; } 
     [Optinal] 
     public string CC { get; set; } 
     public string Body { get; set; } 
     public string Subject { get; set; } 
     public string From { get; set; } 
     public string Link { get; set; }  
} 
+0

感謝您的幫助,但我無法找到「可選」註釋的名稱空間,請告訴我這是什麼名稱空間? –

相關問題