2011-01-17 12 views
0

おやすみ!パスワード確認フィールド - 内線番号または構図

私は、例えば、Userと呼ばれる単純なLINQ2SQLエンティティを持っています。パスワード確認フィールドが必要なプロフィールページが必要です。このフィールドをデータベースまたはエンティティに追加する必要はありません。 ViewModelクラスを追加したいと思います。私firt試みは、このようなものです:

[MyClassLevelAttributeToCheckPasswordAndPasswordConfirmation] 
public class ProfileUser 
{ 
    public User UserEntity {get; set;} 

    [DisplayName("Password confirmation")] 
    public string PasswordConfirmation {get; set;} 
} 

Userクラスは、独自の検証とメタデータを持っています。

もっと良い解決策はありますか?

ありがとうございます!

答えて

0

ビュー内でモデルクラスを使用しないでください。

[MyClassLevelAttributeToCheckPasswordAndPasswordConfirmation] 
public class ChangePasswordViewModel 
{ 
    public string Password { get; set; } 

    [DisplayName("Password confirmation")] 
    public string PasswordConfirmation {get; set;} 
} 

ご覧のとおり、パスワードビュー(または実装しているビュー)の変更に関連するプロパティのみを表示します。このようにして、指定されたビューのコンテキストできめ細かな検証制御を行うことができます。 AutoMapperは、モデルをビューモデルから取り戻すのに役立ちます。

+0

このページで私の「ユーザー」の他のプロパティが必要です。私はAutoMapperを使っていますが、 'User'にも検証機能を付けたいのですか?これは理にかなっていますか? – artvolk

+0

@artvolkを使用して、必要なユーザープロパティのみをビューモデルに追加し、検証属性を添付します。 Userオブジェクトの検証に関しては、これはサービスレイヤーで行う必要があります。 –

+0

はい、ありがとうございます。 – artvolk

関連する問題