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
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 ...
}, '');
İstemci tarafı için en iyi çözüm JavaS...
JavaScript: sunucu tarafı vs istemci t...
Değil istemci tarafı doğrulama MaxLeng...
Devre dışı istemci tarafı doğrulama MV...
303 Fasulye İstemci Tarafı Doğrulama g...