ASP.NET MVC3 Стремительная проверка клиентов, FluentHTML и вложенные ViewModels - PullRequest
0 голосов
/ 18 июня 2011

Я использую FluentHTML (из MvcContrib) для разметки моей HTML-разметки.Я хочу использовать ненавязчивую проверку клиента, предоставляемую библиотекой jquery.validate.У меня все работает правильно, кроме свойств вложенных ViewModels.Пример:

public class RegisterPageViewModel
{
    [Required(ErrorMessage = "First Name cannot be empty.")]
    public string FirstName { get; set; }

    [Required(ErrorMessage = "Last Name cannot be empty.")]
    public string LastName { get; set; }

    [Required(ErrorMessage = "Email cannot be empty.")]
    [RegularExpression(@"^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$", ErrorMessage = "Invalid Email Format.")]
    public string Email { get; set; }

    [Required(ErrorMessage = "Password field cannot be empty.")]
    [DataType(DataType.Password)]
    public string Password { get; set; }

    [Required(ErrorMessage = "You have to confirm your password.")]
    [Compare("Password", ErrorMessage = "Passwords must match.")]
    [DataType(DataType.Password)]
    public string PasswordConfirm { get; set; }

    [Required]
    public AddressDto Address { get; set; }

    public bool TermsOfUse { get; set; }

    [Required(ErrorMessage = "Nickname is required")]
    public string Nickname { get; set; }

    public string MiddleName { get; set; }

    [Required(ErrorMessage = "Birthdate is required")]
    public string Birthdate { get; set; }

    public string Phone { get; set; }

    [Required(ErrorMessage = "Mobile number is required")]
    public string Mobile { get; set; }

    public string RakimMelieh { get; set; }

    public string ReferralNickname { get; set; }
}

Он отлично работает для ВСЕХ свойств, кроме тех, которые находятся внутри свойства Address, хотя я также украсил свойства AddressDto атрибутами проверки:

public class AddressDto
{
    public int Id { get; set; }
    [Required(ErrorMessage = "Address Name is required.")]
    public string Name { get; set; }
    public string Country { get; set; }
    public string District { get; set; }
    public string City { get; set; }
    public string Area { get; set; }
    [Required(ErrorMessage = "Address Details are required.")]
    public string Details { get; set; }
    public bool IsDefault { get; set; }
}

То же самое происходит и с другими моделями представления, где внутри них есть вложенные модели представления.Одна вещь, которую я заметил при проверке полей ввода FireBug, состоит в том, что у них всегда есть класс valid, даже когда они не действительно действительны (согласно аннотациям, украшающим их свойства).

Любые мысли, какЯ могу решить эту проблему?

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