2011-07-07 30 views
6

tôi đang sử dụng JQuery xác nhận không phô trương ... Tôi đang cấu hình với toàn cầu hóa để chấp nhận con số như thế: 1.500,50 (Masked bằng JQuery)MVC 3 chữ số thập phân vấn đề xác nhận server-side

Mã của tôi cho đến nay

1-) được cấu hình toàn cầu hóa

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

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

2-) web.config Configured

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

Ok, vì vậy tôi đang sử dụng một plugin JQuery để định dạng Textbox thành Money (PT-BR) như thế: 1.500.000,50 ...

Xác thực ứng dụng khách JQuery của tôi đang hoạt động tốt! Nhưng khi nó đi đến xác nhận máy chủ tôi nhận được một lỗi ModelState:

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

Làm cách nào để khắc phục điều đó?

Cảm ơn

+1

Loại định dạng này là gì? với hai số thập phân thay vì một số thập phân? –

+1

'.' cho hàng ngàn và ',' cho phần thập phân ... – Paul

Trả lời

7

Có sự cố trong MVC ràng buộc với các giá trị như vậy. Đi qua this post bởi Phil Haack. Nó cho bạn thấy làm thế nào để tạo ra một chất kết dính mô hình cusom để xử lý này.

+0

Cảm ơn ... Tôi đã đọc điều đó ... Và vì một lý do kỳ lạ nào đó DecimalModelBinder của tôi không bao giờ được gọi ... Tôi không hiểu tại sao, tôi làm theo chính xác như Phil Haack mô tả ... Chỉ có sự khác biệt Tôi đang sử dụng S # arp Architeture ... – Paul

+0

@Paul có 'S # arp Architeture' thêm các liên kết tùy chỉnh không? Tôi đã không đi qua mã nguồn. – Eranga

+0

Nó có trên Global.asax: ModelBinders.Binders.DefaultBinder = new SharpModelBinder(); – Paul

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