2017-04-03 12 views
0

私は自分のエンティティをラップするビューのodelを持っています。それは次のようになります。ネストされたエンティティのバインディングプロパティ

public class EmailTemplateViewModel 
{ 
    public List<EmailAccount> EmailAccounts { get; set; } 
    public EmailTemplate EmailTemplate { get; set; } 

    [Display(Name = "Email Account")] 
    public int EmailAccountId { get; set; } 

} 

私はポストバックに保存したいエンティティがEmailTemplateです。 EmailAccountEmailTemplateの中にネストされていますが、このようなビューモデルを作成しますので、ユーザーが選択するドロップダウンを作成することができます(関連性のないコードを削除しました)。これはEmailTenplateのすべてのプロパティをバインドすることにより、defualt

public ActionResult Edit([Bind(Include = "EmailAccountId, EmailTemplate")] EmailTemplateViewModel emailTemplateViewModel) 
{ 

} 

:私のコントローラで

は、私はこのような結合していた電子メールのテンプレートを取得します。問題のビューに特定のプロパティを挿入できるようにしたい場合は、ネストされたテンプレートの特定のプロパティをバインドするよう指定する方法がありますか?

私が試した:

public ActionResult Edit([Bind(Include = "EmailAccountId, EmailTemplate.Property1, EmailTemplate.Property2")] EmailTemplateViewModel emailTemplateViewModel) 
{ 

} 

しかし、それdosn't仕事を。これを行うMVCの機能はありますか、または明示的にプロパティをビューモデルに追加してから、それらをコントローラー内のネストされたエンティティにマップする必要がありますか?

答えて

0

あなたはこのような何かを試すことができます:

[Bind(Exclude="EmailAccounts")] 
public class EmailTemplateViewModel 
{ 
    public List<EmailAccount> EmailAccounts { get; set; } 
    public EmailTemplate EmailTemplate { get; set; } 
    [Display(Name = "Email Account")] 
    public int EmailAccountId { get; set; } 
} 

[Bind(Exclude="Property1,Property2")] 
public class EmailTemplate 
{ 
    public string Property1 {get;set;} 
    public string Property2 {get;set;} 
    public string Property3 {get;set;} 
} 
関連する問題