2013-10-15 24 views
6

Tôi đang gặp sự cố về bản địa hóa. Ở Braxin, chúng tôi sử dụng dấu phẩy làm dấu phân tách thập phân, thay vì dấu chấm. Ví dụ:Cho phép dấu chấm và dấu phẩy bằng số, không chỉ cho số thập phân

500,00 
120,21 
0,0001 

tôi tìm thấy giải pháp cho vấn đề này dựa trên câu trả lời này: MVC 3 jQuery Validation/globalizing of number/decimal field

Nhưng ở đây ở Brazil, chúng tôi cũng sử dụng "" về số lượng, như:

100.000.000,00 
11.125,23 

Và một điều nữa:

10.000 <> 10,000 

Người đầu tiên là mười ngàn, và lần thứ hai chỉ đơn giản là mười.

Sử dụng plugin toàn cầu hóa, khi người dùng nhập ".", Nó hiển thị lỗi xác thực. Tôi đã thử sử dụng chú thích dữ liệu DisplayFormat nhưng không hoạt động như mong đợi ... Để "giải quyết" sự cố này, tôi đang sử dụng javascript để đặt và xóa thủ công "." từ những con số trên sân, nhưng điều này rất có vấn đề khi chúng ta cần phải thay đổi bất cứ điều gì (và tôi chắc chắn đây là một trong những cách tiếp cận tồi tệ nhất mà tôi có thể sử dụng ...). Các bạn có biết cách tiến hành trong trường hợp này không?

Một câu hỏi nữa: Tôi có thể tạo mô hình liên kết (hoặc sửa đổi mô hình hiện có) để chấp nhận định dạng số này?

Trả lời

10

Tôi vừa tìm thấy câu trả lời này.

Fixing binding to decimals

Nó hoạt động hoàn hảo trong kịch bản của tôi. Anh chàng này đã giải quyết được vấn đề chính xác mà tôi đang gặp phải!

Tôi chỉ có sửa đổi một vài dòng mã, nhưng phần quan trọng nhất là dòng này:

ModelBinders.Binders.Add(typeof(decimal), new DecimalModelBinder()); 

tôi sửa đổi nó để chấp nhận giá trị nullable.

Các vấn đề liên quan