gpt4 book ai didi

c# - 如何在 MVC 的一种方法中使用远程和比较属性

转载 作者:行者123 更新时间:2023-11-30 20:41:20 26 4
gpt4 key购买 nike

我正在开发一个 MVC 5 应用程序并使用内置的 AccountController 方法进行用户注册。我在 RegisterViewModel 中添加了一个用户名属性,因为我需要它。现在我想在用户名属性上添加远程验证,以便在用户名重复时立即提示用户。

但是当我尝试远程验证并添加 System.Web.Mvc 引用时,密码和确认密码的比较 属性开始出错。

我在网上进行了一些研究,发现 System.Web.Mvc 也有一个 Compare 方法,添加对此类的引用使编译器对 Compare 方法感到困惑。

我的 RegisterViewModel 是:

public class RegisterViewModel
{
[Required]
[EmailAddress]
[Display(Name = "Email")]
public string Email { get; set; }


[Required]
[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }

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

[Required]
[Display(Name = "User Name")]
[RegularExpression(@"(\S)+", ErrorMessage = "White space is not allowed.")]
[Remote("DuplicateUserName", "Account", ErrorMessage = "UserName already exists.")]
public string UserName { get; set; }

}

它给出的错误是:

'CompareAttribute' is an ambiguous reference between 'System.ComponentModel.DataAnnotations.CompareAttribute' and 'System.Web.Mvc.CompareAttribute'

现在我无法删除对使用 System.ComponentModel.DataAnnotations 类的引用,因为我正在使用该类的 Required 和 Display 属性。但我还想添加远程验证。我该怎么做?

最佳答案

将完整的命名空间添加到属性中

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

或者,您可以为您的使用添加一个别名

using Remote = System.Web.Mvc.RemoteAttribute;

关于c# - 如何在 MVC 的一种方法中使用远程和比较属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32521062/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com