Walidacja modelu z przecinkiem

0

Witam, nie potrawię sobie poradzić z pewnym problemem, który wydaje się banalny. Przechodząc do rzeczy, mam taki kod:

[Required]
pubilc double Cena {get set;}

Czyli zwyczajny properties, model do kontrolera. I mam taki input html

<input type="number" step="0.01" pattern="^[0-9]*\.?[0-9]*$" placeholder="0.00" name="Cena" required class="form-control">

Z nieokreślonego powodu model ma wartość 0 (w kontrolerze), gdy podaje liczbę z przecinkiem np. 99.99 lub 99.9. Liczby całkowite przechodzą. I co ciekawe, ten problem pojawia się tylko na hostingu, na localhoście kod przechodzi bez problemu. Próbowałem rozwiązań gdzie nie podawałem wyrażenia w pattern. Również sam input bez typu=number i pattern nie przechodzi.

Proszę o wskazówki.

1

Może jest to związane z ustawieniami regionalnymi. W sensie nie akceptowana jest kropka tylko przecinek. Próbowałeś w ten sposób?
I tak btw, z kodu i tagów wnioskuję, że pewnie jest to core / .net mvc. Nie lepiej zrobić coś takiego jak Html.TextboxFor lub inna wariacja ?

1
Ulgikkksss napisał(a):

gdy podaje liczbę z przecinkiem np. 99.99 lub 99.9

Przecież te liczby mają kropkę, a nie przecinek. Przecinek wygląda tak: ,.

I co ciekawe, ten problem pojawia się tylko na hostingu, na localhoście kod przechodzi bez problemu.

Pierwszy problem to to, że próbujesz wymuszać liczby z kropką, co jest jakimś rodzajem zmuszania ludzi do działania niezgodnie z ich kulturą.
Druga kwestia to to, że serwer działa zgodnie ze swoimi ustawieniami, które mogą być już normalne, czyli od np. Polaków będą chciały przecinków, a nie kropek.

0
somekind napisał(a):
Ulgikkksss napisał(a):

gdy podaje liczbę z przecinkiem np. 99.99 lub 99.9

Przecież te liczby mają kropkę, a nie przecinek. Przecinek wygląda tak: ,.

I co ciekawe, ten problem pojawia się tylko na hostingu, na localhoście kod przechodzi bez problemu.

Pierwszy problem to to, że próbujesz wymuszać liczby z kropką, co jest jakimś rodzajem zmuszania ludzi do działania niezgodnie z ich kulturą.
Druga kwestia to to, że serwer działa zgodnie ze swoimi ustawieniami, które mogą być już normalne, czyli od np. Polaków będą chciały przecinków, a nie kropek.

Ok, mój błąd. Miałem na myśli kropkę, nie przecinek. Z przecinkiem problem również występuje.

Problemu nie ma co do wymuszania. Ustala się w ten sposób cenę produktu, która jest wyłącznie w PLN więc cena 99 zł i 99 gr ma jak najbardziej sens.

0

Skoro cena wyłącznie w PLN, to wypada ją zapisać po polsku, czyli z przecinkiem, a nie kropką. Kropka w języku polskim w zapisie liczb nie występuje.

0
somekind napisał(a):

Skoro cena wyłącznie w PLN, to wypada ją zapisać po polsku, czyli z przecinkiem, a nie kropką. Kropka w języku polskim w zapisie liczb nie występuje.

Dobrze, to nieco drobiazg, ale masz racje co do poprawności. Jednak mimo wszystko brak sugestii co do rozwiązania problemu. Przecinki również nie przechodzą. Jedyna opcja, którą widze to dodanie osobnego inputu na grosze do perspektywy sprzedawcy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1