2011-01-06 14 views
7

ich in meinem ModelljQuery Datetime Picker MVC3

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

In My View

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

und ich schaffen 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> 

wenn ich versuche, neue Artikel zu erstellen Ich habe diese Fehlermeldung

Das Modell Artikel in den Wörterbuch übergeben ist null, aber das Wörterbuch erfordert einen Nicht-Null-Modell Artikel vom Typ 'System.DateTime'

Ich versuche

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

Aber ich haben nicht in Modellwert Check

Antwort

6

Probieren Sie die folgenden Möglichkeiten:

  • Wenn die Aktion zum Erstellen eines neuen Objekts ausgeführt wird, übergeben Sie eine neue Instanz als Modell, z. return View(new MyObject())
  • ändern @inherits System.Web.Mvc.WebViewPage<System.DateTime> zu @inherits System.Web.Mvc.WebViewPage<System.DateTime?>
2
@inherits System.Web.Mvc.WebViewPage<System.DateTime> 

sollte

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

Gerade setzen? in Ihrem System.DateTime

Beispiel:

@model System.DateTime? 

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

, wenn Sie auf das Fragezeichen ommit werden Sie einen Fehler ge

0

Dies ist der Code meiner Editor Vorlage ist: Der Punkt ist, Nullwerte zu vermeiden:

@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>