自定义验证(判断两个值同时唯一)

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Globalization;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Web;
using BLL.BLL;

namespace www.nabian.com.Models
{
    public class NameAndBearchValidation : ValidationAttribute
    {
        RegisterManagerBLL manager = new RegisterManagerBLL();
        public string OtherProperty { get; set; }
        public string OtherPropertyDisplayName
        {
            [CompilerGenerated]
            get
            {
                return OtherPropertyDisplayName;
            }
            [CompilerGenerated]
            internal set
            {
            }
        }
        public override bool RequiresValidationContext
        {
            get
            {
                return RequiresValidationContext;
            }
        }
        public NameAndBearchValidation(string otherProperty)
        {
            if (otherProperty == null)
                throw new ArgumentNullException("otherProperty");

            OtherProperty = otherProperty;
        }
        protected override ValidationResult IsValid(object value, ValidationContext validationContext)
        {
            var property = validationContext.ObjectType.GetProperty(OtherProperty);
            var other = property.GetValue(validationContext.ObjectInstance, null);
            if (manager.QueryComName(value.ToString()) <= 0 && manager.QueryComName(other.ToString(), value.ToString()) <= 0)
            {
                return ValidationResult.Success;
            }
            return ValidationResult.Success;
        }
    }
}

  测试

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using www.nabian.com.Models;

namespace www.nabian.com.ViewsModels
{
    public class textModel
    {
        [NameAndBearchValidation("comName", ErrorMessage = "两个属性不唯一")]
        public string name { get; set; }

        public string comName { get; set; }
    }
}

  

时间: 2024-10-15 05:03:05

自定义验证(判断两个值同时唯一)的相关文章

C标签判断两个值是否相等

c标签判断两个值是否相等 Integer用:${user1.id eq user2.id}:int用:${user1.id == user2.id} 测试代码如下:<c:if test="${not empty listByParentId }">    <c:forEach items="${listByParentId }" var="listByParentId">       <c:if test="

自定义条件判断两对象相等Equals的方法

自定义两对象是否相等方法,必须用到GetHashCode方法,如 public class AirspaceCompareByUUID : IEqualityComparer<AIRSPACE_TS>    {        public bool Equals(AIRSPACE_TS x, AIRSPACE_TS y)        {            if (x == null || y == null)                return false;           

mybatis if判断两个值是否相等存在的坑啊

1.使用“==”比较 字符类型 的值 用“==”比较的使用场景: 不管你用的什么类型的变量,只要变量的值是字符类型就用“==” 产生原因: 在mybatis中如果<if>标签用一个“=”判断左右两边的值是否相等,则mybatis会把“=”两边的值自动拆箱成基础数据类型(Number类型) 示例如下: 参数:String queryKwd = "a"; <select id="getFactoryInfoList" resultMap="B

ES6基础之——对比两个值是否相等Object.is()

对比两个值是否相等我们可以使用==,或者判断绝对相等使用===.它们都有缺点,前者会自动转换数据类型,后者的NaN不等于自身以及正0等于负0 +0 == -0 //true +0 === -0 //true 不过这两个东西是不一样的 再比如: NaN == NaN //false 不过他们是一个东西 遇到这种情况,可以使用Object.is()方法,两个参数就是要对比的东西,比如: Object.is(NaN,NaN) //true Object.is(+0,-0) //false 大部分情况下

==运算符是判断栈中两个值是否相等

默认情况下(也即类型没有重载==运算符的情况下),==运算符是判断栈中两个值是否相等.为了验证这个结论,来看下面的程序: namespace JudgeEquals{    class Program    {        static void Main(string[] args)        {            int a = 10;            int b = 10;            Console.WriteLine(a==b); string s1 = "a

ASP.NET MVC验证 - 自定义验证规则、验证2个属性值不等【待验证】

提示:保存后才提示错误信息 自定义验证特性,继承ValidationAttribute并实现IClientValidatable 这次重写了基类的IsValid()方法的另外一个重载,因为该重载包含了验证上下文ValidationContext,从中可以获取属性及属性值. using System.ComponentModel.DataAnnotations; using System.Globalization; using System.Web.Mvc; namespace MvcValid

ArcGIS自定义工具箱-判断字段值是否相等

联系方式:谢老师,135-4855-4328,xiexiaokui#qq.com 目的:判断两个字段值是否相等 使用方法: 结果: 联系方式:谢老师,135-4855-4328,xiexiaokui#qq.com 原文地址:https://www.cnblogs.com/xiexiaokui/p/10337410.html

JS判断两个对象是否键值对应相等

//isEqual:判断两个对象是否键值对应相等 function isEqual(a,b){ //如果a和b本来就全等 if(a===b){ //判断是否为0和-0 return a !== 0 || 1/a ===1/b; } //判断是否为null和undefined if(a==null||b==null){ return a===b; } //接下来判断a和b的数据类型 var classNameA=toString.call(a), classNameB=toString.call(

【java】【反射】反射实现判断发生了修改操作,判断两个对象是否发生属性值的变更,判断两个List集合内对象的属性值是否发生变更

java的反射实现: 判断发生了修改操作,判断两个对象是否发生属性值的变更,判断两个List集合内对象的属性值是否发生变更 今日份代码: package com.sxd.streamTest; import java.lang.reflect.Field; import java.util.*; /** * @ClassName Test * @Description 判断发生了修改操作,判断两个对象是否发生属性值的变更,判断两个List集合内对象的属性值是否发生变更 * @Author sxd