it-swarm.com.de

MVC 4 Rasierer fügt Datum als Eingabeart hinzu

Ich frage mich, wie ich einen <input type="date"/> für datetime-Attribute meines Modells einfügen kann. Derzeit erstellt Razor ein einfaches Eingabeelement mit type="datetime". Ich möchte die neuen Eingabetypen von HTML5 verwenden.

29
Geethanga

Ich habe es mit dem folgenden Code geschafft.

@Html.TextBoxFor(model => model.EndTime, new { type = "time" })
31
Geethanga

Das Eingabeformat für das Datumsformat muss das Datum laut http://tools.ietf.org/html/rfc3339#section-5.6 full-date sein.

Also habe ich am Ende gemacht:

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

Ich habe es "richtig" versucht mit:

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

mit 

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

Leider schien das Wertattribut der Eingabe immer auf ein Standarddatum gesetzt zu sein, sodass ich die Formatierung direkt wie oben angewendet habe.

Bearbeiten:

Laut Jorn, wenn Sie verwenden

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

anstelle von TextBoxFor funktioniert alles gut.

39
Giles Roberts

Wenn Sie @ Html.EditorFor () verwenden möchten, müssen Sie jQuery ui und Verwenden. Aktualisieren Sie Ihre Asp.net-Mvc mit NuGet Package Manager auf 5.2.6.0.

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

@section-Skripts {

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

<script>

    $(document).ready(function(){

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

     });

</script>

}

0
Md Shahriar
 @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
Md Shahriar