関数IValidatableObject
を介して検証が検証される継承するクラスを取得しました。IEnumerable<ValidationResult>
この関数内では、すべてのフィールドをチェックして1つのValidationResult
メッセージを返すことができます。
しかし、私の問題は、membernames.ToArray()
1つの値しか渡さないことです。ビューページのデベギング中、およびフィールドが有効かどうかをチェックするときに、Html.ViewData.ModelState.IsValid("<fieldname>")
以下は、無効なすべてのフィールドを含むValidationResultメッセージを返す場合のコードです。はフィールドのstring.Join(",", membernames.ToArray())
コレクションを返します。(つまり、「FirstName」、「LastName」)
List<string> membernames = new List<string>();
//Firstname
if (FirstName.Trim() == string.Empty)
{
isValid = false;
membernames.Add(@"""FirstName""");
}
//Lastname
if (LastName.Trim() == string.Empty)
{
membernames.Add(@"""LastName""");
isValid = false;
}
if (!isValid)
{
yield return new ValidationResult("Please complete all fields marked with *", new[] { string.Join(",", membernames.ToArray()) });
}
正しいタイプを渡しnew[] { .. }
ますか?
お知らせ下さい。前もって感謝します。