Си диез / Говнокод #4425 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
public ActionResult Register(RegisterInformation ri, string myCaptcha, HttpPostedFileBase image)
{
    if (ri.Name == null) ModelState.AddModelError("my", "Введите имя");
    if (ri.Name != null && ri.Name.Length > 32) ModelState.AddModelError("my", "Слишком длинное имя, максимум 32 символа");
    if (ri.Password == null) ModelState.AddModelError("my", "Введите пароль");
    if (ri.Password != null && ri.Password.Length > 32) ModelState.AddModelError("my", "Слишком длинный пароль, максимум 32 символа");
    if (ri.Email == null) ModelState.AddModelError("my", "Введите адрес почты");
    if (ri.Email != null && ri.Email.Length > 32) ModelState.AddModelError("my", "Слишком длинная почта, максимум 32 символа");
    if (ri.Phone == null) ModelState.AddModelError("my", "Введите телефон");
    if (ri.Captcha == null) ModelState.AddModelError("my", "Введите символы с картинки");
    if (ri.Email != null && !IsValid.Mail(ri.Email)) ModelState.AddModelError("my", "Невалидный email");
    long phone;
    if (!long.TryParse(ri.Phone, out phone)) ModelState.AddModelError("my", "Некорректный формат телефона");
    if (ri.Captcha != null&&!CaptchaHelper.VerifyAndExpireSolution(HttpContext, myCaptcha, ri.Captcha)) ModelState.AddModelError("my", "Неверно введены символы с картинки");

    if (ModelState.IsValid)
    {
        ...
}

Проверяем модель на ошибки

Запостил: HIMen HIMen, (Updated )

Комментарии (7) RSS

    • public class RegisterInformation
      {
          [Required(ErrorMessage = "Введите имя")]
          [StringLength(32, ErrorMessage = "Не длиннее 32 символов")]
          public string Name { get; set; }
      
          [Required(ErrorMessage = "Введите телефон")]
          [RegularExpression(@"\d{6,18}", ErrorMessage = "Неверный номер телефона")]
          public string Phone { get; set; }
      
          ...
      }

      И получаем сразу проверку и на клиенте, и на сервере
      Ответить
      • сабж это скорее пхп-стайл. Хорошо когда язык позволяет писать так красиво = )
        Ответить
      • >[Required(ErrorMessage = "Введите имя")]
        >[StringLength(32, ErrorMessage = "Не длиннее 32 символов")]

        оно появилось недавно, 3.5 сп1, возможно они пишут еще на предыдущей версии фреймворка.
        сам код не так что бы и говно, видно что программер "не первый год женат" и знает о патернах программирования.
        Ответить
      • А если JS фреймворк не поддерживает эту фичу из ASP.NET MVC, то какая к чертям проверка на клиенте? А так же, если проект мультиязычный, то как тогда вписать в аттрибуты подсказки на ошибки? И вообще, это глупо совмещать UI обработку с моделью. Такое сгодится исключительно для примитвных проектов (поэтому эта фича у MVC сомнительна).
        Ответить

Добавить комментарий

Переведи на "PHP", guest!

    А не использовать ли нам bbcode?


    8