2011-11-08 19 views
1

私は、組織と呼ばれるモデルを持っている団体に、私は、リモート検証属性を持つ:ASP.NET MVC 3モデルの検証

[Required(ErrorMessage = "The organisation name is required")] 
    [Remote("NameCheck", "Manage", "Organisations", ErrorMessage="That organisation  already exists")] 
    public string Name { get; set; } 

これは、誰かが追加された組織の名前がす​​でに存在していないことを確認。そうであれば、エラーメッセージが表示されます。

強く型付けされたビューを使用して、組織の「編集」ビューを表示しています。誰かが編集しているので、もちろんその組織が存在するため、リモート検証が実行されることは望ましくありません。

これを達成する方法はありますか?基本的には、組織を編集するときにリモート検証を何らかの方法で無効にし、組織を作成するときに有効にします。

+4

ユーザーが英国の英語を希望する場合は、組織になります。彼らがアメリカの英語を期待するなら、それは組織になるでしょう。彼の一貫したスペルから、私はそれが前者であると思います。 –

+0

John Hartsock、Jared Peless、このようなコメントは、http://english.stackexchange.com/に役立つ可能性がありますが、StackOverflowなどのプログラミング関連のQ&Aサイトではあまり役に立ちません。 –

答えて

3
public class BaseOrganizationModel { 
    public int ID {get; set;} 
} 

public class UpdateOrganizationModel : BaseOrganizationModel { 
    [Required(ErrorMessage = "The organisation name is required")] 
    public string Name { get; set; } 

} 

public class InsertOrganizationModel : BaseOrganizationModel { 
    [Required(ErrorMessage = "The organisation name is required")] 
    [Remote("NameCheck", "Manage", "Organisations", ErrorMessage="That organisation  already exists")] 
    public string Name { get; set; } 

} 
+0

ありがとう、質問に答えます。 – Paul

4

あなたは/ 二つのビューのために別のビューモデルを使用すべきである可能性があります。たとえば、CreateOrganizationViewModelとUpdateOrganizationViewModelがあります。最初のビューモデルでは、Nameプロパティはリモート属性で修飾されますが、2番目のビューモデルでは修飾されません。

+0

ありがとうございます。いい答えだ。 – Paul

関連する問題