2009-10-17 24 views
9

Neden ASP.NET MVC 2 doğrulamamın çalışmadığını araştırmaya çalışıyorum, ancak NASIL'ın bunu yapabilmesi için yeterli olduğunu bulamıyorum.ASP.NET MVC 2'deki doğrulama nasıl çalışır?

Şu anda orada bulunan en iyi belgeler gibi görünen bu useful article by David Hayden'daki adımları izledim, ancak hiçbir şey olmuyor.

Sunucuya gönderdiğimde (modelime veri ek açıklamaları eklediğimde Önizleme 1'den beri yaptığım gibi) doğrulama uygularım ancak istemci tarafı doğrulaması almıyorum.

Test etmek için nasıl izleyebilirim? Şimdiye kadar neyi

kolayca göremiyorum gerçek Html.ClientValidationEnabled =

  • MicrosoftMvcJQueryValidation.js ve jquery.validate.min.js dosyalar indiriliyor
      olduğunu
    • aşağıdaki bariz şeyler

      doğruladıktan Hangi olayların olduğunu bilmek, nasıl hata ayıklayacağını bilmek.

  • cevap

    3

    Bir alanın istemci tarafında doğrulanması için, alan için (tıpkı David'in bağlandığınız öğreticide yaptığı gibi) bir görünüm belirtmeniz gerekir. Bu, esas olarak, bu alan için doğrulamayı çalıştırmak istediğiniz istemci tarafı doğrulama mantığına yönelik bir tetikleyicidir. Bir doğrulama mesajının aslında her alan için görsel olarak görüntülenmesini istemediğiniz durumlar varsa (örn. Html.ValidationMessage kullanarak), ancak bir özetin yalnızca doğrulama hata iletilerinin kaynağı olmasına izin vermeyi tercih ederseniz (örn. Html.ValidationSummary kullanarak), hala istediğiniz belirli alanlar için gerçekleşmesini doğrulama "tetiklemek" için bir yol gerekir. Bu, görünümünüzdeki Html.Validate/Html.ValidateFor <> yöntemlerini kullanarak gerçekleştirilebilir. Bu yardımcılar hiçbir şey yapmazlar, ancak belirtilen alanı sadece istemci tarafında doğrulama için kaydederler.

    Her iki gereksinim de vardır çünkü istemci tarafı doğrulamasının model nesnesindeki her özelliği otomatik olarak doğrulamasını istemeyebilirsiniz, çünkü bunların bazıları doğrulanmış olmasını istediğiniz formun bir parçası bile olmayabilir.

    10

    İşte öğrendiğim budur:

    EN ÖNEMLİ

    • HTML'iniz Formu kullanılarak direktifi, sadece BeginForm ve EndForm ile oluşturulması gerekir. Eğer 'Form'
    • Her kısmi kumanda üzerindeki Html.ClientValidationEnabled = true ayarlamalısınız her bir alan için Html.ValidationMessage kullanmalıdır
    • başlamak ÖNCE
    • Sen Html.ClientValidationEnabled = true ayarlamalısınız (ascx)
    • BT (çok basit bir bakış)

      • Eğer Html do NASIL ÇALIŞIR

      .o ViewContext bir 'FormContext' oluşturur BeginForm ValidationMessage yardımcıları kullanıldığında, meta formu (kullanarak ifade tarafından) yerleştirilir formu bağlamında

    • konur tüm doğrulama kodunu yazıyor

    çEŞİTLİ

    • o kontrol Form tanımlayan görünümden bir başka modeli kullanır eğer, kısmi bir kontrol, doğrulama çalışma almak gibi olamaz.

    • Sen Html.TextBoxFor veya Html.ValidationMessageFor kullanmak gerekmediğini, kullanabileceğiniz Html.TextBox ve Html.ValidationMessage