#asp.net #asp.net-mvc #asp.net-mvc-4 #data-annotations
#asp.net #asp.net-mvc #asp.net-mvc-4 #данные-аннотации
Вопрос:
У меня есть такая модель в MVC;
public class Employee
{
public int EmployeeId { get; set; }
[Required]
[EmailAddress]
[DisplayName("Email")]
[Remote("doesEmailExist", "Employee", HttpMethod = "POST", ErrorMessage = "Email already exists. Please enter a different Email.")]
public string Email { get; set; }
}
При создании действия все в порядке, оно отлично работает. Но при редактировании действия программа видит, что адрес электронной почты уже существует. И я не могу обновить своего сотрудника с тем же адресом электронной почты. Что я могу сделать?
Ответ №1:
Вы могли бы использовать AdditionalFields
свойство RemoteAttribute
для включения EmployeeId
в проверку. Затем в вашем методе действий, если EmployeeId=null
проверка завершается неудачей, если найдено совпадающее электронное письмо, в противном случае проверяйте только совпадающие электронные письма, в которых указан другой идентификатор сотрудника
Комментарии:
1. Я сделал такой метод; [HttpPost] public JsonResult doesEmailExist(int EmployeeID, строка Email){} когда я редактирую его, он возвращает идентификатор и почту, и он работает хорошо, но когда я создаю новый, он не видит этот метод
2. Имеет ли EmployeeID значение для нового сотрудника (например, = 0) или оно равно нулю? Если null, то оно должно быть
doesEmailExist(int? EmloyeeID, ..