Я новичок в MVC, я делаю регистрационную форму, и если вы хотите зарегистрироваться, вам нужно ввести электронную почту, которая не существует в БД, и я поместил этот метод в контроллер, хорошо ли держать такие методы, как в контроллере, или я должен перенести этот метод в модель или реализовать документ IValidatableObject?Куда поместить пользовательские методы проверки?
-3
A
ответ
2
вы должны поставить проверку в вашей ViewModel (или модели), а также указать Validation в модели, как это:
public class RegisterViewModel
{
public string Name { get; set; }
[Required(ErrorMessage = "please fill Email Address")]
public string Email { get; set; }
[Required(ErrorMessage = "please fill Password")]
public string Password { get; set; }
[Required(ErrorMessage = "please fill ConfirmPassword")]
[Compare("Password", ErrorMessage = "...")]
public string ConfirmPassword { get; set; }
}
и проверка формы Validate в вашем контроллере, как это:
[HttpPost]
public virtual ActionResult Create(RegisterViewModel registerViewModel)
{
if (!ModelState.IsValid)
return View(registerViewModel);
}
и вас может создать логотипо Validation:
Create Custome Validation -Stackoverflow
Custome Validation In MVC-CodeProject
Обновлено:
Если вы хотите проверить Электронная почта Exists или нет, вы можете пользователя Remote
Атрибут Как это:
[Remote("CheckEmailIsExist", "User","", ErrorMessage = "This Email Address is Exists in database , please use another",HttpMethod = "POST")]
public string Email { get; set; }
в контроллере:
public virtual JsonResult CheckEmailIsExist(string email)
{
return _userService.ExistsByEmail(email)
? Json(false)
: Json(true);
}
и реализовать в сервисном слое Пример:
public bool ExistsByEmail(string email)
{
return
_users.Any(
user => user.Email== email);
}
Смежные вопросы
- 1. Куда поместить данные проверки Скалы
- 2. Куда поместить методы проверки GWT в соответствии с MVC-дизайном
- 3. Куда поместить мои пользовательские помощники Html?
- 4. MediaWiki: Куда поместить пользовательские классы css?
- 5. ios UI. Куда поместить пользовательские интерфейсы?
- 6. Куда поместить методы, используемые несколькими классами?
- 7. Куда поместить методы, доступные всем марионеточным представлениям
- 8. Куда поместить функциональный код фрагмента?
- 9. Куда поместить Testdata?
- 10. Куда поместить Constants.swift?
- 11. Изменение куда поместить текст
- 12. Куда поместить метод?
- 13. Куда поместить WebRequest.RegisterPrefix()
- 14. Куда поместить утверждения?
- 15. UITabBarControllerDelegate - Куда поместить код?
- 16. Куда поместить функцию заголовка
- 17. Куда поместить Root Controller?
- 18. Куда поместить сценарии PowerShell?
- 19. Куда поместить ViewModel
- 20. Куда поместить документирующие комментарии?
- 21. Куда поместить файл свойств?
- 22. Куда поместить модель AngularJS?
- 23. Куда поместить внутренние классы?
- 24. Куда поместить try catch
- 25. Куда поместить методы, которые считаются доступными для всего приложения?
- 26. Куда поместить пользовательскую функцию проверки внутри структуры папок CouchApp?
- 27. C# Куда ставить общие методы?
- 28. Куда поместить математические вычисления в Rails?
- 29. Куда поместить «плагины» в linux
- 30. Emacs: Куда поместить файл psvn.el?
Я атрибуты, мне нужно, чтобы проверить электронную почту в базе данных, у меня есть метод Его SameEmailNotExist (INT идентификатор, строка электронной почта), я должен поставить этот метод в классе модели? – CrushJelly
@CrushJelly, пожалуйста, см. Обновленный ответ! –