'Compare'是'System.ComponentModel.DataAnnotations.CompareAttribute'和'System.Web.Mvc.CompareAttri



我的帐户控制器中有此错误。

找不到类型或命名空间名称"选择列表项"(是否缺少 using 指令或程序集引用?

明显的解决方法是添加using System.Web.Mvc;但是当我这样做时,我收到 4 个新错误

在两条不同的线上:

找不到类型或命名空间名称"错误消息"(是否缺少 using 指令或程序集引用?

在另外 2 条不同的行上:

">

比较"是"System.ComponentModel.DataAnnotations.CompareAttribute"和"System.Web.Mvc.CompareAttribute"之间的模糊引用

为什么会发生这种情况,我该如何解决?

public class RegisterViewModel
    {
[DataType(DataType.Password)]
        [Display(Name = "Confirm password")]
        [Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
        public string ConfirmPassword { get; set; }
       public IEnumerable<SelectListItem> DepotList { get; set; }

}

重置密码视图模型

public class ResetPasswordViewModel
{
    [DataType(DataType.Password)]
    [Display(Name = "Confirm password")]
    [Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
}

是的。这两个命名空间都具有具有相同功能的属性。

根据 msdn 文档,System.Web.Mvc.CompareAttribute 已过时,建议使用System.ComponentModel.DataAnnotations.CompareAttribute

因此,请使用包含命名空间的完全限定名称。

[DataType(DataType.Password)]
[Display(Name = "Confirm password")]
[System.ComponentModel.DataAnnotations.Compare("Password",
                    ErrorMessage = "The password and confirmation password do not match.")]
public string Name { get; set; }

或者,如果您不想在所有位置放置完全限定名,则可以使用别名

using Compare = System.ComponentModel.DataAnnotations.CompareAttribute;
public class ResetPasswordViewModel
{
   [DataType(DataType.Password)]   
   [Compare("Password", ErrorMessage = "The password and confirm password do not match.")]
   public string Password { set;get;}
   //Other properties as needed
}

相关内容

  • 没有找到相关文章

最新更新