「すぐに使える機能」に関して何を期待しているのかわかりませんが、2つの属性を簡単に作成できます。MVC 3では、メソッドからモデルを派生させてIValidatableObject
実装する機会もありますValidate
。後者は、必要に応じて、相互のコンテキスト内で複数のプロパティに対して複数の検証を実行する機能を提供します。
ValidationAttributeを実装し、プロパティを装飾する方法は次のとおりです。これらのうち2つが必要になるので、これに名前を付けて、同じメソッドのオーバーライドUsernameExistsAttribute
と呼ばれる別の1つを作成したふりをします。AccountAlreadySetupAttribute
IdValid
public class UsernameExistsAttribute : ValidationAttribute
{
public override bool IsValid(object value)
{
if((string)value == "Bob")
return false;
else
return true;
}
}
そして、ビューモデルでは、次のように属性を装飾します。
public class FreakinSweetViewModel
{
[UsernameExists(ErrorMessage="Username exists")]
[AccountAlreadySetup(ErrorMessage="Account is not setup")]
public string Username { get; set; }
}
これにより、MVC3ボックスからクライアント側とサーバー側の検証が接続されます。