ComplianceServer/oldcode/Common/MvcValidation/NoInputAttribute .cs

45 lines
1.3 KiB
C#

using System.ComponentModel.DataAnnotations;
using System.Web.Mvc;
namespace WX.CRM.Common.MvcValidation
{
/// <summary>
/// 用来禁止属性某个值的输入
/// </summary>
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<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
{
ModelClientValidationRule rule = new ModelClientValidationRule
{
ValidationType = "noinput",
ErrorMessage = FormatErrorMessage(metadata.GetDisplayName())
};
rule.ValidationParameters["input"] = Input;
yield return rule;
}
}
}