2011-01-06 28 views
7

tôi có trong mẫu của tôi lĩnh vựcjQuery Datetime chọn MVC3

[DataType(DataType.DateTime)] 
    [Required(ErrorMessage = "Expire is required")] 
    public DateTime Expire 
    { 
     get; 
     set; 
    } 

này In My Xem

@Html.EditorFor(model => model.Expire)) 
     @Html.ValidationMessageFor(model => model.Expire) 

và tôi tạo DataTime EditorTemplates

@inherits System.Web.Mvc.WebViewPage<System.DateTime> 
@Html.TextBox("", (Model.ToShortDateString()), new { @class = "datePicker" }) 
<script type='text/javascript'> 
    $(document).ready(function() { 
    $(".datePicker").datepicker({ 
     //  buttonImage: "/content/images/calendar.gif", 
     //  showOn: "both", 
     //  defaultDate: $("#calendar-inline").attr('rel') 
     showAnim: 'slideDown', 
     dateFormat: 'dd/mm/yyyy' 

    }); 
    }); 
</script> 

khi tôi cố gắng để tạo mới mục Tôi có thông báo lỗi này

Mô hình mục đã qua vào từ điển là null, nhưng từ điển này đòi hỏi phải có một tổ chức phi-null mô hình mục của loại 'System.DateTime'

tôi cố gắng

Model.HasValue ? Model.Value.ToString("MM/dd/yyyy") : DateTime.Today.ToShortDateString() 

Nhưng tôi không có trong Kiểm tra giá trị mô hình

Trả lời

6

Hãy thử một trong các cách sau:

  • Nếu hành động là để tạo đối tượng mới, hãy chuyển một phiên bản mới làm mô hình, ví dụ: return View(new MyObject())
  • Thay đổi @inherits System.Web.Mvc.WebViewPage<System.DateTime> để @inherits System.Web.Mvc.WebViewPage<System.DateTime?>
2
@inherits System.Web.Mvc.WebViewPage<System.DateTime> 

nên

@inherits System.Web.Mvc.WebViewPage<System.DateTime?> 
1

Chỉ cần đặt? trong System.DateTime bạn

dụ:

@model System.DateTime? 

@Html.TextBox("", ViewData.TemplateInfo.FormattedModelValue, 
       new 
       { 
        data_datepicker = true 
       }) 

nếu bạn ommit dấu hỏi bạn sẽ ge một lỗi

0

Đây là mã của mẫu biên tập của tôi: Vấn đề là để tránh các giá trị null:

@model DateTime? 


<script src="../../../Scripts/jquery-1.4.4.js" type="text/javascript"></script> 
<script src="../../../Scripts/jquery-ui.js" type="text/javascript"></script> 

      @Html.TextBox("", (Model.HasValue ? Model.Value.ToShortDateString() : String.Empty), new { @class = "datePicker" }) 
<script type='text/javascript'> 
    $(document).ready(function() { 
     $(".datePicker").datepicker({ 
      //  buttonImage: "/content/images/calendar.gif", 
      //  showOn: "both", 
      //  defaultDate: $("#calendar-inline").attr('rel') 
      showAnim: 'slideDown', 
      dateFormat: 'dd/mm/yyyy' 

     }); 
    }); 
</script> 
Các vấn đề liên quan