Độc quyền không thể là Nullable, nó không có ý nghĩa với ViewEngine khi đánh giá biểu thức. Nó phải kiểm tra hoặc không chọn hộp kiểm và cũng trả lời bằng giá trị true
hoặc false
. Mô hình của bạn cần có giá trị bool
nhưng điều đó không có nghĩa là cơ sở dữ liệu của bạn phải biết điều đó. Bạn chỉ cần làm một bản dịch ở đâu đó giữa cơ sở dữ liệu và Mô hình, ví dụ. Model.Exclusive = DAO.Exclusive ?? false
.
Nếu không biết những gì null đại diện trong lược đồ dữ liệu của bạn hoặc cách bạn tạo đối tượng mô hình của mình, thật khó để cung cấp cho bạn nhiều chi tiết hơn thế.
Edit: đã không kiểm tra này, nhưng bạn có thể nhận được ngay với một cái gì đó đơn giản như
public bool NoNullExclusive
{
get { return Exclusive ?? false; }
set { Exclusive = value; }
}
và thay thế
<%= Html.CheckBoxFor(model => model.Product.Exclusive) %>
với
<%= Html.CheckBoxFor(model => model.Product.NoNullExclusive) %>
tôi tạo ra các tài sản mà bạn gợi ý trong một lớp học. Đây có phải là nơi tốt nhất để thực hiện thao tác này không? – Picflight
Nếu lớp Sản phẩm của bạn được tạo tự động thì có. Nếu không thì trong chính lớp đó hoặc trong ánh xạ từ đối tượng truy cập dữ liệu đến mô hình. – pdr