MVC 4 Rasoir ajout saisie de type date

je me demandais comment faire pour insérer un <input type="date"/> pour les attributs datetime de mon model. Comme pour maintenant Razor crée un élément d'entrée simple avec type="datetime". Je veux utiliser les nouveaux types d'entrée de HTML5.

29
demandé sur Geethanga 2013-01-20 15:12:15

5 réponses

le format de la valeur de la date d'entrée nécessite la date spécifiée selon http://tools.ietf.org/html/rfc3339#section-5.6 Date complète.

alors j'ai fini par faire:

<input type="date" id="last-start-date" value="@string.Format("{0:yyyy-MM-dd}", Model.LastStartDate)" />

j'ai essayé de le faire "correctement" à l'aide de:

[DataType(DataType.Date)]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy-MM-dd}")]
public DateTime LastStartDate
{
    get { return lastStartDate; }
    set { lastStartDate = value; }
}

@Html.TextBoxFor(model => model.LastStartDate, 
    new { type = "date" })

malheureusement cela a toujours semblé définir l'attribut de valeur de l'entrée à une date standard heure donc j'ai fini par appliquer le formatage directement comme surtout.

Edit:

Selon Jorn si vous utilisez

@Html.EditorFor(model => model.LastStartDate)

au lieu de TextBoxFor tout fonctionne très bien.

36
répondu Giles Roberts 2014-04-14 10:14:40

j'ai réussi à le faire en utilisant le code suivant.

@Html.TextBoxFor(model => model.EndTime, new { type = "time" })
31
répondu Geethanga 2013-01-21 15:17:06
 @Html.TextBoxFor(m => m.EntryDate, new{ type = "date" })

 or type = "time"

 it will display a calendar
 it will not work if you give @Html.EditorFor()
0
répondu Md Shahriar 2018-08-04 08:55:05

si vous voulez utiliser @Html.EditorFor () vous devez utiliser jQuery ui et mettre à jour votre Asp.net Mvc à 5.2.6.0 avec NuGet Package Manager.

@Html.EditorFor(m => m.EntryDate, new { htmlAttributes = new { @class = "datepicker" } })

@section Scripts {

@Scripts.Render("~/bundles/jqueryval")

<script>

    $(document).ready(function(){

      $('.datepicker').datepicker();

     });

</script>

}

0
répondu Md Shahriar 2018-08-04 09:56:19

Vous l'obtiendrez par type d'étiquette="date"...puis il rendra beau calendrier et tout...

@Html.TextBoxFor(model => model.EndTime, new { type = "date" })
-3
répondu Madhusudhan V Indian 2016-04-14 18:05:12