2012-02-11 30 views
8

Tôi đã tạo ra một mô hình trong MVC 3 trang web asp.net của tôi và có một tài sản mang tên DateOpened:Ngày lĩnh vực đưa ra lỗi yêu cầu trên xác nhận

[Column("Date Opened")] 
     [Display(Name = "Date Opened:")] 
     [DataType(DataType.Date)] 
     [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")] 
     public DateTime DateOpened { get; set; } 

tôi không áp dụng [Bắt buộc] dữ liệu chú thích với nó, nhưng khi tôi cố gắng để lưu các hình thức, Nó nói trường bắt buộc. Trong cơ sở dữ liệu, nó là null.

Vui lòng đề xuất giải pháp.

Trả lời

15

Điều đó là bình thường. DateTime là một kiểu giá trị có nghĩa là nó sẽ luôn đòi hỏi một giá trị. Nhà cung cấp siêu dữ liệu mô hình trong ASP.NET MVC tự động thêm thuộc tính bắt buộc vào các kiểu dữ liệu không có giá trị. Bạn có thể sử dụng DateTime không hợp lệ:

[Column("Date Opened")] 
[Display(Name = "Date Opened:")] 
[DataType(DataType.Date)] 
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")] 
public DateTime? DateOpened { get; set; } 
+0

Cảm ơn phản hồi của bạn. Tôi đã sửa đổi mô hình nhưng bây giờ tôi nhận được lỗi này: Không thể chuyển đổi hoàn toàn loại 'System.DateTime?' thành 'System.DateTime'. Một chuyển đổi rõ ràng tồn tại (bạn đang bỏ lỡ một diễn viên?) Trên các trang mà tôi đang sử dụng DateOpened – DotnetSparrow

+1

@DotnetSparrow, bạn đang sử dụng tài sản này như thế nào? Để truy cập vào giá trị của một kiểu nullable, bạn cần sử dụng thuộc tính '.Value':' DateOpened.Value'. –

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