Tôi đang sử dụng một ô trống trên một hình thức ASP.NET MVC như vậy:asp.net MVC hộp kiểm mâu thuẫn
<%=Html.CheckBox("AgreeToRules", Model.AgreeToRules)%>
Thuộc tính AgreeToRules trên mô hình là một giá trị boolean. Trong quá trình thử nghiệm, tất cả điều này đã làm việc tốt. Tuy nhiên, bây giờ mà chúng tôi đã đi vào vận hành với ứng dụng này, tôi nhìn thấy một số lượng tương đối nhỏ nhưng đầy ý nghĩa của lỗi với thông điệp sau:
System.Web.HttpUnhandledException: ngoại lệ kiểu 'System. Web.HttpUnhandledException ' đã bị ném. ---> System.InvalidOperationException: Việc chuyển đổi thông số từ loại 'System.String' thành loại 'System.Boolean' không thành công. Xem ngoại lệ bên trong để biết thêm thông tin. ---> System.FormatException: Y không phải là giá trị hợp lệ cho Boolean. ---> System.FormatException: Chuỗi không phải là được nhận dạng là Boolean hợp lệ.
này dường như xảy ra khi các công cụ xem cố gắng để làm cho hình thức sau một bưu điện, và giá trị của hộp kiểm được trả về từ ValueProvider trông giống như:
Y, false
HOẶC
N, false
Các html được trả theo hình thức ban đầu trông giống như:
<input id="AgreeToRules" name="AgreeToRules" type="checkbox" value="true" />
<input name="AgreeToRules" type="hidden" value="false" />
Trong thử nghiệm, tôi mong đợi (và thấy) giá trị được đưa lên trông giống như:
đúng, sai
nếu được chọn hoặc
fa lse
nếu không được chọn. Vậy N và Y đến từ đâu?
Tôi đã thêm tác nhân người dùng vào danh sách thông tin được trả về từ trình xử lý lỗi và xuất hiện (cho đến nay) tất cả các lỗi xảy ra trong Windows XP với FF 3.0.10, nhưng đó chính xác là những gì tôi đã thử nghiệm và vấn đề không tồn tại trong quá trình thử nghiệm.
Mọi suy nghĩ?
Y và N? Không phải là những gì Microsoft Jet (được sử dụng bởi Access) sử dụng cho các lĩnh vực boolean của nó? – Powerlord
Có thể, nhưng vì điều này không liên quan gì đến Jet hoặc Access, tôi không chắc nó có liên quan hay không. – Chris
Sẽ đăng một cái gì đó tôi đặt trong một câu trả lời ngay bây giờ xóa: Tôi chỉ cần kiểm tra các spec HTML, và giá trị mặc định cho một hộp kiểm được ngụ ý là "trên" là không có giá trị được đưa ra; Tôi không có ý tưởng nơi Y hoặc N có thể đến từ, trừ khi nó MVC cụ thể ASP.NET. – Powerlord