SORU
10 Mart 2010, ÇARŞAMBA


Koşullu doğrulama ASP.NET MVC

Nasıl veri modeli ek açıklamalar koşullu bir doğrulama yapmak için kullanılır?

Örneğin, lets aşağıdaki model (Kişinin) üst Düzey var ki:

public class Person
{
    [Required(ErrorMessage = "*")]
    public string Name
    {
        get;
        set;
    }

    public bool IsSenior
    {
        get;
        set;
    }

    public Senior Senior
    {
        get;
        set;
    }
}

public class Senior
{
    [Required(ErrorMessage = "*")]//this should be conditional validation, based on the "IsSenior" value
    public string Description
    {
        get;
        set;
    }
}

Ve aşağıdaki görünümü:

<%= Html.EditorFor(m => m.Name)%>
<%= Html.ValidationMessageFor(m => m.Name)%>

<%= Html.CheckBoxFor(m => m.IsSenior)%>
<%= Html.ValidationMessageFor(m => m.IsSenior)%>

<%= Html.CheckBoxFor(m => m.Senior.Description)%>
<%= Html.ValidationMessageFor(m => m.Senior.Description)%>

"Kıdemli.olmak istiyorum"Seçime bağlı özellik koşullu zorunlu alan "" satılık arsa (true ->İsSenior açıklama gerekli). Nasıl ASP.NET MVC koşullu Veri Doğrulama uygulamak ek açıklamalar ile 2?


GÜNCELLEME

Güzel bir çözüm buldum. Aşağıda bak.

CEVAP
12 Mart 2011, CUMARTESİ


MVC3 şartlı geçerlilik kuralları eklemek için daha iyi bir yolu var. Modeliniz İValidatableObject miras ve Doğrulama yöntemi uygulayın:

public class Person : IValidatableObject
{
    public string Name { get; set; }
    public bool IsSenior { get; set; }
    public Senior Senior { get; set; }

    public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) 
    { 
        if (IsSenior && string.IsNullOrEmpty(Senior.Description)) 
            yield return new ValidationResult("Description must be supplied.");
    }
}

http://weblogs.asp.net/scottgu/archive/2010/07/27/introducing-asp-net-mvc-3-preview-1.aspx bir açıklama yapın

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Bad Lip Reading

    Bad Lip Read

    22 Mart 2011
  • GUN-TIME with Brandon

    GUN-TIME wit

    3 ŞUBAT 2009
  • Leigh Momii

    Leigh Momii

    10 Mayıs 2006