在asp.net的更新表单上唯一的电子邮件地址

本文关键字:唯一 电子邮件地址 表单 更新 asp net | 更新日期: 2023-09-27 18:15:11

我正在一个有用户列表的asp.net页面上工作。我想编辑这些用户。每个用户都有一个唯一的电子邮件地址。在更新页面上,单击Save按钮时,我正在检查是否存在针对在表单的电子邮件地址字段中键入的电子邮件地址的用户。如果没有,那么我想显示错误。此外,我要确保用户不会在更新表单上输入电子邮件地址,这是由其他用户使用的。如何确保用户输入的电子邮件地址没有被其他用户使用?

以下是我目前使用的代码:
 UserAuthentication ua1 = null;
 ua1 = UserAuthenticationManager.GetUserByEmail(objUserProfile.Email);
 if (ua1 != null)
 {
   //update
 }

请建议

在asp.net的更新表单上唯一的电子邮件地址

您的意思是您需要一个验证属性?RemoteValidation可以为你工作。

但是如果你想对两个操作只做一个请求,那么你将不得不解决只有服务器验证这个唯一的检查。您可以编写自定义验证器(网络上有很多示例),或者您可以作弊并做一些类似

的事情。
if (ModelState.IsValid)
{
   if (UserAuthenticationManager.IsUniqueByEmail(model.Id, model.Email))
   {
      // do update
   }
   else
   {
      ModelState.AddModelError("", "The user email already exists");
   }
}

确保在视图中有一个验证摘要。

IsUniqueEmail后面的Sql应该像

select *
from Users
where Id <> @Id and Email like @email

使用动作作为JsonAction,并检查动作并将状态返回到此

try this

var _user = Membership.GetUserNameByEmail(_emailid);
if(_user != null)
{
    //email already exits
    ModelState.AddModelError("", "Email id already exists.");
}
else
{
   //new email address
}