mvc的改版

今天在做登录注册的时候 使用MVC的验证属性

发现Compare这个属性 引用出问题

编译时是 引用不明确

原因是在mvc3上是可以同时引用

using System.ComponentModel.DataAnnotations;
using System.Web.Mvc;

  但是到了4好像就改了 具体怎么改的不清楚 查看了一下

命名空间修改了

mvc3中是

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;

namespace System.Web.Mvc
{
    // 摘要:
    //     提供一个比较模型的两个属性的特性。
    [AttributeUsage(AttributeTargets.Property)]
    public class CompareAttribute : ValidationAttribute, IClientValidatable
    {
        // 摘要:
        //     初始化 System.Web.Mvc.CompareAttribute 类的新实例。
        //
        // 参数:
        //   otherProperty:
        //     要与当前属性进行比较的属性。
        public CompareAttribute(string otherProperty);

        // 摘要:
        //     获取要与当前属性进行比较的属性。
        //
        // 返回结果:
        //     要与当前属性进行比较的属性。
        public string OtherProperty { get; }

        // 摘要:
        //     基于出现比较错误的数据字段对错误消息应用格式设置。
        //
        // 参数:
        //   name:
        //     导致验证失败的字段的名称。
        //
        // 返回结果:
        //     带有格式的错误消息。
        public override string FormatErrorMessage(string name);
        //
        // 摘要:
        //     通过在客户端验证属性的前面加一个星号 (*) 和一个圆点来设置其格式。
        //
        // 参数:
        //   property:
        //     属性。
        //
        // 返回结果:
        //     将字符串“*.”加到该属性的前面。
        public static string FormatPropertyForClientValidation(string property);
        //
        // 摘要:
        //     使用指定模型元数据和控制器上下文获取属性的比较值客户端验证规则的列表。
        //
        // 参数:
        //   metadata:
        //     模型元数据。
        //
        //   context:
        //     控制器上下文。
        //
        // 返回结果:
        //     比较值客户端验证规则的列表。
        public IEnumerable<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context);
        protected override ValidationResult IsValid(object value, ValidationContext validationContext);
    }
}

mvc4中是 

using System;

namespace System.ComponentModel.DataAnnotations
{
    // 摘要:
    //     提供比较两个属性的属性。
    [AttributeUsage(AttributeTargets.Property, AllowMultiple = false)]
    public class CompareAttribute : ValidationAttribute
    {
        // 摘要:
        //     初始化 System.ComponentModel.DataAnnotations.CompareAttribute 类的新实例。
        //
        // 参数:
        //   otherProperty:
        //     要与当前属性进行比较的属性。
        public CompareAttribute(string otherProperty);

        // 摘要:
        //     获取要与当前属性进行比较的属性。
        //
        // 返回结果:
        //     另一属性。
        public string OtherProperty { get; }
        //
        // 摘要:
        //     获取其他属性的显示名称。
        //
        // 返回结果:
        //     其他属性的显示名称。
        public string OtherPropertyDisplayName { get; internal set; }
        //
        // 摘要:
        //     获取指示特性是否要求验证上下文的值。
        //
        // 返回结果:
        //     如果特性需要验证上下文,则为 true;否则为 false。
        public override bool RequiresValidationContext { get; }

        // 摘要:
        //     基于发生错误的数据字段对错误消息应用格式设置。
        //
        // 参数:
        //   name:
        //     导致验证失败的字段的名称。
        //
        // 返回结果:
        //     带有格式的错误消息。
        public override string FormatErrorMessage(string name);
        //
        // 摘要:
        //     确定指定的对象是否有效。
        //
        // 参数:
        //   value:
        //     要验证的对象。
        //
        //   validationContext:
        //     一个对象,该对象包含有关验证请求的信息。
        //
        // 返回结果:
        //     如果 value 有效,则为 true;否则为 false。
        protected override ValidationResult IsValid(object value, ValidationContext validationContext);
    }
}
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;

namespace System.Web.Mvc
{
    // 摘要:
    //     提供用于比较某个模型的两个属性的特性。
    [AttributeUsage(AttributeTargets.Property)]
    public class CompareAttribute : ValidationAttribute, IClientValidatable
    {
        // 摘要:
        //     初始化 System.Web.Mvc.CompareAttribute 类的新实例。
        //
        // 参数:
        //   otherProperty:
        //     要与当前属性进行比较的属性。
        public CompareAttribute(string otherProperty);

        // 摘要:
        //     获取要与当前属性进行比较的属性。
        //
        // 返回结果:
        //     要与当前属性进行比较的属性。
        public string OtherProperty { get; }
        //
        // 摘要:
        //     获取其他属性显示名称。
        //
        // 返回结果:
        //     其他属性显示名称。
        public string OtherPropertyDisplayName { get; internal set; }

        // 摘要:
        //     基于出现比较错误的数据字段对错误消息应用格式设置。
        //
        // 参数:
        //   name:
        //     导致验证失败的字段的名称。
        //
        // 返回结果:
        //     带有格式的错误消息。
        public override string FormatErrorMessage(string name);
        //
        // 摘要:
        //     通过在客户端验证属性的前面追加一个星号 (*) 和一个点来设置其格式。
        //
        // 参数:
        //   property:
        //     属性。
        //
        // 返回结果:
        //     字符串“*.”将追加到该属性前面。
        public static string FormatPropertyForClientValidation(string property);
        //
        // 摘要:
        //     使用指定模型元数据和控制器上下文获取属性的比较值客户端验证规则的列表。
        //
        // 参数:
        //   metadata:
        //     模型元数据。
        //
        //   context:
        //     控制器上下文。
        //
        // 返回结果:
        //     比较值客户端验证规则的列表。
        public IEnumerable<System.Web.Mvc.ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context);
        //
        // 摘要:
        //     确定指定对象是否等于比较对象。
        //
        // 参数:
        //   value:
        //     要比较的对象的值。
        //
        //   validationContext:
        //     验证上下文。
        //
        // 返回结果:
        //     如果所比较属性的值等于值参数,则为 null;否则为一个验证结果,它包含指示比较失败的错误消息。
        protected override ValidationResult IsValid(object value, ValidationContext validationContext);
    }
}

都有同样的属性 

因为在验证部分 其他的还是需要

using System.ComponentModel.DataAnnotations;

 

所以 就把System.Web.Mvc去掉

posted @ 2013-12-18 00:15  风飞萧雪  阅读(341)  评论(0编辑  收藏  举报