56 lines
1.9 KiB
C#
56 lines
1.9 KiB
C#
|
/* ****************************************************************************
|
|||
|
*
|
|||
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|||
|
*
|
|||
|
* This software is subject to the Microsoft Public License (Ms-PL).
|
|||
|
* A copy of the license can be found in the license.htm file included
|
|||
|
* in this distribution.
|
|||
|
*
|
|||
|
* You must not remove this notice, or any other, from this software.
|
|||
|
*
|
|||
|
* ***************************************************************************/
|
|||
|
|
|||
|
namespace System.Web.Mvc {
|
|||
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.ComponentModel.DataAnnotations;
|
|||
|
|
|||
|
public class DataAnnotationsModelValidator : ModelValidator {
|
|||
|
public DataAnnotationsModelValidator(ModelMetadata metadata, ControllerContext context, ValidationAttribute attribute)
|
|||
|
: base(metadata, context) {
|
|||
|
|
|||
|
if (attribute == null) {
|
|||
|
throw new ArgumentNullException("attribute");
|
|||
|
}
|
|||
|
|
|||
|
Attribute = attribute;
|
|||
|
}
|
|||
|
|
|||
|
protected internal ValidationAttribute Attribute { get; private set; }
|
|||
|
|
|||
|
protected internal string ErrorMessage {
|
|||
|
get {
|
|||
|
return Attribute.FormatErrorMessage(Metadata.GetDisplayName());
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public override bool IsRequired {
|
|||
|
get {
|
|||
|
return Attribute is RequiredAttribute;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
internal static ModelValidator Create(ModelMetadata metadata, ControllerContext context, ValidationAttribute attribute) {
|
|||
|
return new DataAnnotationsModelValidator(metadata, context, attribute);
|
|||
|
}
|
|||
|
|
|||
|
public override IEnumerable<ModelValidationResult> Validate(object container) {
|
|||
|
if (!Attribute.IsValid(Metadata.Model)) {
|
|||
|
yield return new ModelValidationResult {
|
|||
|
Message = ErrorMessage
|
|||
|
};
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|