using System.ComponentModel.DataAnnotations; using System.Web.Mvc; namespace WX.CRM.Common.MvcValidation { /// /// 用来禁止属性某个值的输入 /// public sealed class NoInputAttribute : ValidationAttribute, IClientValidatable { public string Input { get; set; } public NoInputAttribute(string input) { this.Input = input; } public override bool IsValid(object value) { //如果没有输入值,放行 if (value == null) { return true; } if (value is string) { if (Input.IndexOf("[" + value.ToString() + "]") > -1) { return false; } } return true; } public System.Collections.Generic.IEnumerable GetClientValidationRules(ModelMetadata metadata, ControllerContext context) { ModelClientValidationRule rule = new ModelClientValidationRule { ValidationType = "noinput", ErrorMessage = FormatErrorMessage(metadata.GetDisplayName()) }; rule.ValidationParameters["input"] = Input; yield return rule; } } }