2016-06-25 20 views
0

Ich habe ein Modell wie dieseMVC Daten Anmerkungen entsprechende Datetime Picker zeigt, die nicht in Firefox

public class Movie 
{ 
    public int ID { get; set; } 

    [StringLength(60, MinimumLength = 3)] 
    public string Title { get; set; } 

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

    .... 
} 

und diese Eigenschaft der Datetime sollte einen Datetime-Picker in allen Browsern machen, aber es geschieht nicht in Firefox (Version 38.0.5) es funktioniert in Google Chrome, gibt es eine Lösung dafür?

[Display(Name = "Release Date")] 
[DataType(DataType.Date)] 
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy-MM-dd}")] 
public DateTime ReleaseDate { get; set; }** 

Ansicht Code

@model MVCMovie.Models.Movie 
.... 
@using (Html.BeginForm()) 
{ 
    @Html.AntiForgeryToken() 
    <div class="form-group"> 
     @Html.LabelFor(model => model.Title, new { @class = "control-label col-md-2" }) 
     <div class="col-md-10"> 
      @Html.EditorFor(model => model.Title) 
      @Html.ValidationMessageFor(model => model.Title) 
     </div> 
    </div> 
    <div class="form-group"> 
     @Html.LabelFor(model => model.ReleaseDate, new { @class = "control-label col-md-2" }) 
     <div class="col-md-10"> 
      @Html.EditorFor(model => model.ReleaseDate) 
      // @Html.TextBoxFor(model => model.ReleaseDate, new { @class = "form-control datepicker", placeholder = "Enter Drop-off date here..." }) 
      @Html.ValidationMessageFor(model => model.ReleaseDate) 
     </div> 
    </div> 
    .... 
} 

@section Scripts { 
    @Scripts.Render("~/bundles/jqueryval") 
    <script type="text/javascript"> 
     /* ... */ 
     if (!Modernizr.inputtypes.date) { 
      $('.datepicker').datepicker(); 
     } 
    </script> 
} 
+0

'type = "date"' ist nur in Chrome und Edge-unterstützt - [siehe Browservergleich] (https://html5test.com/compare/browser/chrome-44/firefox-40/ie-11/ie-Edge%2013.html). Verwenden Sie ein jquery-Plugin. –

+0

@Stephen, jedes spezifische Plugin, das Sie kostenlos empfehlen, und wie würden Sie den Ansichtscode ändern? Bitte helfen Sie bei der Code Verbesserung – Sanjeewa

+1

Keine Empfehlungen, aber [jQuery ui datepicker] (https://jqueryui.com/datepicker/) und [bootstrap-datepicker] (https://bootstrap-datepicker.readthedocs.io/en/latest /) sind beide beliebte Wahlen. Aber es gibt viele andere. –

Antwort

0

änderte ich mein Modell wie dieses

public class Movie 
    { 
     public int ID { get; set; } 

     [StringLength(60, MinimumLength = 3)] 
     public string Title { get; set; } 

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

     ..... 
    } 

hinzugefügt jQueryUI NuGet Paket

ein Bündel erstellt wie diese

und in der Ansicht hinzugefügt, um diese Abschnitte in den unteren

@section Scripts { 

@Scripts.Render("~/bundles/jqueryui") 
@Styles.Render("~/Content/cssjqryUi") 

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('input[type=datetime]').datepicker({ 
      dateFormat: "dd/M/yy", 
      changeMonth: true, 
      changeYear: true, 
      yearRange: "-60:+0" 
     }); 

    }); 
</script> 
} 

es jetzt

arbeitet

enter image description here