2016-10-31 9 views
1

私はEmailFormModelクラスを持っています。電子メールの目的のためのCCのリストは機能しません

public class EmailFormModel 
{ 
    [Required, Display(Name = "Your Name:")] 
    public string FromName { get; set; } 

    [Required, Display(Name = "Your Email:")] 
    public string FromEmail { get; set; } 

    [Required, Display(Name = "To Email:")] 
    public string ToEmail { get; set; } 

    public List<SelectListItem> CCEmail { get; set; } 

    [Required] 
    [AllowHtml] 
    public string Message { get; set; } 

    public EmailFormModel() 
    { 
     CCEmail = new List<SelectListItem>(); 
    } 

} 

は今、私は財産CCEmailListの種類を作ったので、なぜ、複数のCCの受信者を持つようにこのメールを必要とします。私のHttpGetメソッドでは、私は正しく動作しているリストに値を設定しています。私のHttpPostで私はこれをやっている:

foreach(var item in model.CCEmail) 
{ 
    message.CC.Add(new MailAddress(item.Text)); 
} 

は今、私の見解では...私は、彼らが電子メールアドレスとして提出される提出打ったときように。これらの電子メールアドレスを表示するために何ができるのでしょうか?

<div class="form-group"> 
    @Html.LabelFor(m => m.CCEmail, new { @class = "col-md-2 control-label" }) 
     <div class="col-md-10"> 
      @Html.ListBoxFor(m => m.CCEmail,null, new { @class = "form-control" }) 
      @Html.ValidationMessageFor(m => m.CCEmail) 
     </div> 
</div> 

は、電子メールアドレスを表示するのではなくListBoxForする別の/より良い方法があります:

は現在、私の見解で、私はこれを持っていますか?その後、

しかし、私は、電子メールアドレスを選択...とはSubmitを打つ、私はエラーメッセージを取得:

に値を 'のJohn.Doe @ test.com、Test.User1 @ test.com' です無効。

これらは実際のメールアドレスではありません。私が使用しているものは有効です。

何か助けていただければ幸いです。

答えて

1

私は別の解決策を見つけたにもかかわらず、よりクリーンなソリューションを探しています。ここに私がしたことがあります。

CCEmailプロパティをList<string>に変更しました。

だから、私はこの構文にforeachループを変更HttpPost方法で:

foreach(var item in model.CCEmail) 
{ 
    message.CC.Add(new MailAddress(item)); 
} 

その後、私の見解では、私はこれをしなかった:

<div class="form-group"> 
    @foreach(var item in Model.CCEmail) 
    { 
     @Html.LabelFor(m => m.CCEmail, new { @class = "col-md-2 control-label" }) 
      <div class="col-md-10"> 
       @Html.TextBox("CCEmail", item, htmlAttributes: new { @class = "form-control", @readonly = true }) 
      </div> 
    } 
</div> 

これは2つの別々のテキストボックスを作成していますが、それはまだ2つの別々の電子メールアドレスとして提出するのではなく、私のOPのエラーと思われるものを組み合わせたものです。

さらに簡単で清潔な解決策がわかっている場合は、投稿してください。

関連する問題