2011-07-07 11 views
6

jestem przy użyciu jQuery dyskretne walidacji ... jestem skonfigurowany z globalizacji, aby zaakceptować numery tak: 1.500,50 (zamaskowane przez JQuery)MVC 3 dziesiętny Problem walidacji po stronie serwera

Mój kod dotychczas

1-) skonfigurowane zglobalizować

$.validator.methods.number = function (value, element) { 
    return this.optional(element) || !isNaN(Globalize.parseFloat(value)); 
}; 

$(function() { 
    Globalize.culture('pt-BR'); 
}); 

2-) skonfigurowanego Web.config

<globalization culture="pt-BR" uiCulture="pt-BR" /> 

Ok, więc używam wtyczki JQuery do formatowania Textbox to Money (PT-BR) w ten sposób: 1.500.000,50 ...

Moja walidacja klienta JQuery działa dobrze! Ale po przejściu do sprawdzania poprawności serwera otrzymałem błąd ModelState:

"The value '1.500.000,50' is not valid for Total." 

Jak mogę to naprawić?

Dzięki

+1

Jaki to jest format? z dwoma miejscami dziesiętnymi, a nie jednym? –

+1

"." jest dla tysięcy i "," dla części dziesiętnej ... – Paul

Odpowiedz

7

Istnieje problem w MVC wiążące do wartości takiego. Przejdź przez this post przez Phila Haacka. Pokazuje, jak utworzyć spoiwo modelu cusom, aby sobie z tym poradzić.

+0

Dzięki ... Przeczytałem już ... I z jakiegoś dziwnego powodu mój DecimalModelBinder nigdy nie jest nazywany ... Nie wiem dlaczego, podążam dokładnie tak, jak to opisał Phil Haack ... Tylko różnica Używam architektury S # arp Architeture ... – Paul

+0

@Paul robi 'S # arp Architeture' dodaje niestandardowe segregatory? Nie przejrzałem kodu źródłowego. – Eranga

+0

Ma na Global.asax: ModelBinders.Binders.DefaultBinder = new SharpModelBinder(); – Paul

Powiązane problemy