ASP.NET 核心 MVC 唯一 Phone 号码和 SSN
ASP.NET Core MVC Unique Phone Number and SSN
我正在使用 ASP.NET Core MVC Identity,我想为 Phone Number 和 SSN(国民 ID)添加一个唯一字段。由于我使用的是 .NET Identity,因此我找不到在搭建 .NET Identity 之后搭建的控制器。
据我所知,有两种方法可以解决这个问题。一个是执行 remote-validator
,另一个是在 Controller
中实现一个函数。我会在数据库中搜索现有的 Phone 号码和 SSN,如果为真 return,则 JSON 结果会显示一条错误消息。但是,我该怎么做呢?还是有更有效的解决方案?
身份文件夹结构:
Register.cshtml 自定义字段片段:
[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; }
谢谢
考虑使用
[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
我正在使用 ASP.NET Core MVC Identity,我想为 Phone Number 和 SSN(国民 ID)添加一个唯一字段。由于我使用的是 .NET Identity,因此我找不到在搭建 .NET Identity 之后搭建的控制器。
据我所知,有两种方法可以解决这个问题。一个是执行 remote-validator
,另一个是在 Controller
中实现一个函数。我会在数据库中搜索现有的 Phone 号码和 SSN,如果为真 return,则 JSON 结果会显示一条错误消息。但是,我该怎么做呢?还是有更有效的解决方案?
身份文件夹结构:
Register.cshtml 自定义字段片段:
[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; }
谢谢
考虑使用
[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