ModelState.IsValid не удается проверить! - PullRequest
1 голос
/ 06 мая 2011

Итак, у меня есть простой класс, который я использую для отправки электронного письма с контактной формой.

public class EnquiryEmail : Entity
{
    [DataType(DataType.Text)]
    [Required(ErrorMessage = "Name is a required field")]
    [StringLength(100, ErrorMessage = "Must be under 100 characters")]
    public virtual string Name { get; set; }

    [DisplayName("Tel")]
    [DataType(DataType.PhoneNumber)]
    [StringLength(20, ErrorMessage = "Must be under 20 characters")]
    public virtual string Tel { get; set; }


    [DataType(DataType.EmailAddress)]
    [Required(ErrorMessage = "Email is a required field")]
    [RegularExpression(@"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*", ErrorMessage = "Valid Email Address is required.")]
    [StringLength(100, ErrorMessage = "Must be under 100 characters")]
    public virtual string Email { get; set; }

    [DataType(DataType.MultilineText)]
    [Required(ErrorMessage = "Enquiry is a required field")]
    public virtual string Enquiry { get; set; }

}

Выше мой класс, и мой контроллер выглядит следующим образом

[AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Enquiry(EnquiryEmail model)
    {
        if (ModelState.IsValid)
        {
            //Send a Email to Admin!!
            if (ForSale.Core.Email.EnquiryEmail(model))
            {
                return new JsonResult { Data = new { Success = true } };
            }
        }

        return new JsonResult { Data = new { Success = false } };
    }

По какой-то причине ModelState.IsValid возвращает значение true, хотя я могу заглянуть в свой объект EnquiryEmail и увидеть нулевые значения для значений, для которых имеется проверка «Требуется».

Посмотрите на ModelState.IsValid показывает 4 значения - значения Null на самом деле отображаются в виде пустых строк под свойством с именем «AttemptedValues». что я не уверен, если это проблема здесь или просто что ModeState делает!

В любом случае его проверка не корректна. Есть идеи, что бы это могло быть?

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