0
ModelState.AddModelError(string key, string errorMessage);
をIsValid
の関数ValidationAttribute
クラスに追加しようとしましたが失敗します。ValidationAttributeクラスのIsValid関数からModelState.AddModelError()にアクセスする方法
[AttributeUsage(AttributeTargets.Property, AllowMultiple = true, Inherited = true)]
public class AtleastOneAttribute : ValidationAttribute, IClientValidatable
{
// For Server side
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
if (value != null)
{
var oHobby=value as IEnumerable;
foreach (var _object in oHobby)
{
Hobby _oHobby = (Hobby)_object;
if (_oHobby.IsSelected)
{
return ValidationResult.Success;
}
}
}
ModelState.AddModelError("Hobbies", "Err message....");
return new ValidationResult(FormatErrorMessage(validationContext.DisplayName));
}
方法ValidationAttributeクラスのIsValid
関数からModelState.AddModelError
へのアクセスを教えて?
おかげ
失敗しているでしょうか?任意のエラー? – Haris
ModelState.AddModelError()は、isValid関数ではアクセスできません。コードにアクセスするにはどうしたらいいですか? – Mou
あなたは 'ModelState'にアクセスせず、' ValidationAttribute'に 'ModelStateError'を追加しません。あなたはその属性が何をしているのか混乱しているようです。 'Success'以外の' ValidationResult'を返すと、 'DefaultModelBinder'はバインディング処理中に' ModelStateError'を追加します( 'ModelState.IsValid'は' false'になります) –