【发布时间】:2021-09-28 07:59:20
【问题描述】:
我正在使用 ASP.NET Core MVC 身份,我想为电话号码和 SSN(国民身份证)添加一个唯一字段。由于我正在使用 .NET Identity,因此我找不到在搭建 .NET Identity 之后搭建的控制器。
据我所知,有两种方法可以解决这个问题。一个是执行remote-validator,另一个是在Controller 中实现一个函数。我会在数据库中搜索现有的电话号码和 SSN,然后如果 True 返回显示错误消息的 JSON 结果。但是,我该怎么做呢?还是有更有效的解决方案?
身份的文件夹结构:
Register.cshtml 自定义字段 sn-ps:
[Required(ErrorMessage ="National ID is a required field")]
[DataType(DataType.Text)]
[Display(Name = "Nationa ID")]
[StringLength(10, MinimumLength =10, ErrorMessage ="National ID must be 10 digits")]
[RegularExpression("(^[0-9]*)(^[12].*)", ErrorMessage = "National ID must be numeric")]
//TODO: make it unique
public string NationalId { get; set; }
[Required(ErrorMessage ="Phone Number is a required field")]
[DataType(DataType.PhoneNumber)]
[Display(Name = "Phone Number")]
[RegularExpression(@"^((?:[+?0?0?966]+)(?:\s?\d{2})(?:\s?\d{7}))$", ErrorMessage = "Not a valid phone number")]
//TODO: Make it unique
public string PhoneNumber { get; set; }
谢谢
【问题讨论】:
-
IIRC,需要打开Register.cshtml后面的代码。 ASP.NET Core 标识开始使用可怕的 ASP.NET Core Razor 页面,因此没有控制器
-
是的,我知道它在文件 Register.cshtml.cs 中的 Register.cshtml 下。但是我将如何处理自定义字段唯一性的此类功能
-
最简单的方法是使用 POST 事件处理程序来执行第二种方法,我认为是
OnPost但我没有使用过 Razor Pages,所以您需要确认
标签: c# .net asp.net-mvc asp.net-core asp.net-core-identity