SORU
24 Ocak 2011, PAZARTESİ


ASP.NET MVC 3 istemci tarafı parametreleri ile doğrulama

Bu yazı sonrasında 14**

Bu, tarafı istemci komut dosyası için ek parametreler ileterek bunu nasıl etrafında başımı almak için çalışıyorum

Şimdiye kadar MVC 3 ile özel doğrulama uygulamak için anladığım kadarıyla aşağıdakiler gereklidir

Özel doğrulama özelliği oluşturun

ValidationAttribute dayalı ve İClientValidatable uygulanması. Bazı örnekler ValidationAttribute ve İClientValidatable işlevselliğini uygulamak gibi görünüyor ModelValidator, türetmek bakın ben de. Bu farklılıklarını ne ya ModelValidator MVC 2'de kullanıldı ama şimdi kaldırılmış olup olmadığını ya da ne gibi bir karışıklık benim ilk noktası ...

Örneği ModelClientValidationRule geri iade edilmelidir itibaren GetClientValidationRules() belirtmek ayrıntıları gibi hata iletisi, Valreader.validationtype (ki ben bunu anlaması adının Javascript işlevi yapacak istemci tarafı doğrulama) ve herhangi bir ek özel parametre özniteliği olabilir, ve gereken geçirilen Javascript doğrulama.

Ben çalışma zamanı (emin hangi kısmı kullanmayın) ModelClientValidationRule aşağıdaki gibi etiket elemanları html özniteliği oluşturmak için kullandığı varsayılır

data-val="true"  (to indicate that the element requires validation)
data-val-[ValidationType]=[ErrorMessage]
data-val-[ValidationType].[ValidationParameters(n).Key]=[ValidationParameters(n).Value]

-İstemci tarafı doğrulama mantığını uygulamak

Javascript bir fonksiyon ve bir WordPress kullanmak için oluşturulan eklenmelidir.jQuery elemanları.katılmak.() addmethod yürütülecek ihtiyacınız olduğunda JQuery bilgisi var o kadar. Gibi bir şey

jQuery.validator.addMethod(
    'greaterThan', 
    function (value, element, params) {
        /.../
       return /* true or false   */ ; 
    },
    ''
); 

Benim sorum burada olup imza 'fonksiyonu (değer, öğe, parametreler)' standart yöntemleri idare edeceği doğrulama ve sanırım olacak adında bir WordPress kullanmak işlevselliği en uygun zaman olduğu gibi önce bir şeklidir gönderilen ya da ne zaman bir öğe kaybeder fuces veya keyUp olayları. Ben sadece bu yani yout özel doğrulama için appropriete olan seçim kontrolü nasıl anlamıyorsun yok.

Mütevazi bir adaptör uygulamak

Bu mütevazi nitelikler; çok açık değilim bir şey çevirir, ama bir WordPress kullanmak bir Kural olarak kabul eder, ama o iş nasıl açık değilim. Gibi bir şey

jQuery.validator.unobtrusive.adapters.add(
    'futuredate', 
    { },
    function (options) {
        options.rules['greaterThan'] = true;
        options.messages['greaterThan'] = options.message;
    }
); 

Benim sorum burada 'fonksiyonu (seçenek)'. 'Fonksiyon (değer, öğe, parametreler)' ve jQuery.tarafından anlaşılabilir bir veri yapısı içine mütevazi etiketleri ayıklamak için sorumlu önce çağrılacak olan bu işlev Doğrulama. Seçenekleri içeren bir nesne gibi geliyor bana kod örneği, özniteliği etikete (seçenekler.gibi değerler mesaj ve harita olmalı jQuery ilgili özellikleri (seçenekleri.gibi[''] ClientSideValidationFunctionName. iletileri Nasıl özel parametreleri alınan ve eşleştirilir.

Herhangi bir ek karışıklık ekledim umarım.

CEVAP
24 Ocak 2011, PAZARTESİ


ValidationParameters özelliği kural için özel parametreler eklemek için kullanabilirsiniz:

public IEnumerable<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
{
    var rule = new ModelClientValidationRule
    {
        ErrorMessage = this.ErrorMessage,
        ValidationType = "futuredate",
    };
    rule.ValidationParameters.Add("param1", "value1");
    rule.ValidationParameters.Add("param2", "value2");
    yield return rule;
}

adaptör kullanılabilir:

jQuery.validator.unobtrusive.adapters.add(
    'futuredate', 
    [ 'param1', 'param2' ],
    function (options) {
        var param1 = options.params.param1; // shall equal 'value1'
        var param2 = options.params.param2; // shall equal 'value2'
        // TODO: use those custom parameters to define the client rules
    }
);

GÜNCELLEME:

Yorum olarak istenen bölüm burada özel doğrulama kuralı işlevi için bu parametreleri nasıl:

jQuery.validator.unobtrusive.adapters.add(
    'futuredate', 
    [ 'param1', 'param2' ],
    function (options) {
        // simply pass the options.params here
        options.rules['greaterThan'] = options.params;
        options.messages['greaterThan'] = options.message;
    }
);

jQuery.validator.addMethod('greaterThan', function (value, element, params) {
    // params here will equal { param1: 'value1', param2: 'value2' }
    return ...
}, '');

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ShayLoss

    ShayLoss

    5 Kasım 2009
  • sWooZie

    sWooZie

    9 ŞUBAT 2006
  • tatermoog

    tatermoog

    2 AĞUSTOS 2006