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.
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.
j'ai réussi à le faire en utilisant le code suivant.
@Html.TextBoxFor(model => model.EndTime, new { type = "time" })
@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()
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>
}
Vous l'obtiendrez par type d'étiquette="date"...puis il rendra beau calendrier et tout...
@Html.TextBoxFor(model => model.EndTime, new { type = "date" })