Подтверждение адреса электронной почты на основе наилучшей практики обратной передачи jQuery - PullRequest
1 голос
/ 13 августа 2010

Возможно, этот заголовок вопроса сформулирован плохо, поэтому не стесняйтесь настраивать.

В моем приложении MVC у меня есть пользовательский атрибут, который я использую для оформления полей электронной почты, который затем либо проходит, либо не проходит модель.

На одной странице, хотя я разрешаю использовать для отправки комментария, но я отправляю через ajax и поэтому не делаю полную обратную передачу и проверку модели.

Поэтому я хотел бы проверить адресно не копировать код.Я также хотел бы не разбивать код из валидатора на еще один класс, или это лучший способ?

Есть ли другой способ?Могу ли я создать модель в обратной передаче ajax и проверить ее там, а затем вернуть частичное представление с сообщениями об ошибках?

Или есть другой способ?

1 Ответ

0 голосов
/ 13 августа 2010

Вы говорите, ...

Так что я хотел бы подтвердить адрес, но не копировать код. Я также хотел бы не разбивать код из валидатора на еще один класс или это лучший способ?

ИМО, это лучший способ. Вынести общий код. Я вижу вашу проблему, хотя, наш EmailValidator наследуется от RegularExpressionValidator, поэтому его трудно выделить. У нас есть служебный класс RegEx, который использует тот же шаблон RegEx. Мы обращаемся к шаблону константой в обоих местах ...

public class EmailAttribute : RegularExpressionAttribute
{
  public EmailAttribute() :
    base(RegExUtility.SingleEmailAddressPattern)
  {
    ErrorMessage = "Please enter a valid email address";
  } 

и

public static class RegExUtility
{
  public const SingleEmailAddressPattern = @"...";

  public static bool IsValidSingleEmailAddress(string email)
  {
     return Regex.IsMatch(email, SingleEmailAddressPattern);

Для простых действий обратной передачи Ajax, я думаю, вы часто можете обработать это в контроллере или создать отдельную POCO ViewModel, которая просто поддерживает путь Ajax. Я знаю, что есть статьи об использовании одной и той же модели для обоих типов действий, но мы обнаружили, что обычно достаточно различий, поэтому стоит иметь отдельные модели представлений. Если они достаточно сложны, мы просто выделяем общий код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...