【问题标题】:ASP.NET Core MVC Unique Phone Number and SSNASP.NET Core MVC 唯一电话号码和 SSN
【发布时间】: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


【解决方案1】:

考虑使用 [Remote(action: "Action Name", controller: "Controller Name",AdditionalFields = "Your additional parameters of the action", ErrorMessage = "Message displayed in form after validation")] 在验证属性之上。

请注意,该属性的值将用作您操作中的第一个参数。

然后在控制器中指向属性以添加操作以从数据库中获取 json 结果

[AcceptVerbs("Get", "Post")]
    public async Task<IActionResult> ActionName(string phoneNumber)
    {
        // Do Database checking
        {
            // If value already exists
            return Json(false);
        }
        //If unique value
        return Json(true);
    }

最后,您应该在您的视图或 _Layout.cshtml 中包含以下脚本

<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script src="~/Scripts/jquery.validate.min.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>

如需更详细的文章,请查看 this one here

【讨论】:

    猜你喜欢
    • 2018-06-14
    • 2012-12-15
    • 1970-01-01
    • 2013-07-31
    • 1970-01-01
    • 2017-12-10
    • 2017-11-12
    • 2015-05-08
    • 2018-06-14
    相关资源
    最近更新 更多