2011-04-17 24 views
6

Asp.net mvc 3 kullanıyorum ve aşağıdaki hatayı almaya devam ediyorum. mütevazi istemci doğrulama kuralları içindeSorunsuz istemci doğrulama hatası

Doğrulama türü adları benzersiz olmalıdır. Aşağıdaki doğrulama tipi defadan fazla görüldü: sayı

benim gibi hiçbir ipucu var bu

@Html.TextBoxFor(x => x.Mark) 

// benim ViewModel bir onu değiştirirseniz

[Required(ErrorMessage = "Message")] 
     [Number(ErrorMessage = "Message")] 
     public decimal Mark { get; set; } 

dize ondalık, şikayet olmaz. Ne oluyor?

Düzenleme

Ben çünkü bu [Number(ErrorMessage = "Message")] ek açıklama olduğunu düşünüyorum. Bu kitaplığı kullanıyorum ondalık kullanmıyor gibi görünmüyor gibi görünüyor. Herkes nedenini biliyor mu? Mark null değil olduğundan, yinelenen olur.

cevap

9

Tür ondalık yazıyorsanız, [Sayısal] özniteliğini kullanmanız gerekmez; çünkü MVC zaten sayısal bir tür kullandığınızı ve bunun sizin için enjekte ettiğini (hataya neden oluyor) gördüğünüz anlamına gelir. Bir dizeye geçtiğinizde, o dizgenin nasıl çalışmasını istediğinizi doğrulamak için [Numeric] 'e ihtiyaç duyulur.

DataAnnotationsExtensions'ın sonraki sürümünde, [Numeric] özniteliğini değiştireceğim, böylece bu durumda MVC sürümüyle çarpışmayacaktır. Ancak, şimdilik [Sayısal] özelliğini kaldırmanız iyi olacaktır çünkü sayısal bir türdeki [Sayısal] zaten gereksizdir.

+0

Hakkı tamamen unutmuşum. Bununla birlikte, bağlayıcı başarısız olduğunda ortaya çıkan mesaj üzerinde herhangi bir kontrole sahip olmadığınız için bunu yapmak isteyebileceğinizi söyleyebilirim (ya da en azından sizin yaptığınızı düşünmüyorum). Aynı zamanda sadece taraf tarafı değil, müşteri tarafıdır. – chobo2

0

. decimal?

2

Olması İçin Değiştirirseniz, aynı istemci kuralını iki kez ekleyen birden fazla model doğrulayıcıya sahipsiniz, özel bir validatiOn sağlayıcısı kullanıyor musunuz?

+0

Özel bir doğrulama sağlayıcısı kullanıyorum ve bu hatayı alıyorum. Niye ya? Ne yapabilirim? Bu kullandığım doğrulama sağlayıcısı: [Knoema.Localization.Mvc.ValidationLocalizer] (https://github.com/Knoema/Localization/blob/master/Mvc/Mvc/ValidationLocalizer.cs) – Mahmoodvcs

İlgili konular