1

私の質問は、次のリンクで尋ねられた前の質問と非常によく似ています。

入力のMVC3目立たない検証グループ

基本的に、3つ以上の入力フィールドを検証する必要があります(少なくとも1つは必須)。たとえば、私は電子メール、ファックス、アドレスを持っています。次のように定義します。

public class MyViewModel
{ 
    public string Email { get; set; }
    public string Fax { get; set; }
    public Address Address { get; set; }
}

public class Address 
{ 
    public string Street { get; set; }
    public string Suburb { get; set; }
}

Email、Fax、またはAddress.Suburbのいずれかを入力する必要があります。これが失敗した場合は、1つのフィールド(前のリンクのソリューションに含まれているもの)ではなく、すべてのフィールドを強調表示します。

すべてのサーバー側の検証が機能していることに注意してください。MVC3を邪魔にならないように使用して、クライアント側でこれを行うにはどうすればよいかを知る必要があります。

4

1 に答える 1

2

AtLeastOneRequiredすべてのプロパティに属性を適用してみることができます。

public class MyViewModel
{
    [AtLeastOneRequired("Email", "Fax", "Phone", ErrorMessage = "At least Email, Fax or Phone is required")]
    public string Email { get; set; }

    [AtLeastOneRequired("Email", "Fax", "Phone", ErrorMessage = "At least Email, Fax or Phone is required")]
    public string Fax { get; set; }

    [AtLeastOneRequired("Email", "Fax", "Phone", ErrorMessage = "At least Email, Fax or Phone is required")]
    public string Phone { get; set; }
}
于 2012-08-24T07:30:57.977 に答える