2016-04-18 16 views
0

Vielen Dank für Ihre ZeitSet Eingabetyp = Datum

Meine Frage ist Wie man Werteingabe von Typ Datum einstellen?

@Html.EditorFor(model => model.StartDate, new { htmlAttributes = new { @class = "form-control", @type = "date" } }) 

, dass es nach dem Lauf kommt

<input class="form-control text-box single-line" data-val="true" data-val-date="The field Date must be a date." data-val-required="The Date field is required." id="StartDate" name="StartDate" type="date" value=""> 

machte ich einen etwas Code auf diese Weise

$(document).ready(function() { 
    debugger; 
    var date = $('#StartDate').val(); 
    var dt = new Date(date); 
    var day = parseInt(dt.getDate()); 
    var month = parseInt(dt.getMonth() + 1); 
    var year = parseInt(dt.getFullYear()); 

    if (day < 10) { day = '0' + day } 
    if (month < 10) { month = '0' + month } 
    var setDate = year + '-' + month + '-' + day; 

    $('#StartDate').val(setDate); 
}); 

Wenn das Programm läuft ich den Wert aus dem Debugger sehen Bildschirm ist String.Empty

var date = ""; 

auch ich versuchte diesen wieder den unteren Teil des Formatfehlers zu entfernen.

var dt = new Date(date); 

aber ich habe nicht funktioniert. Wenn jemand die Antwort auf diese Ich brauche wirklich Hilfe Schließlich kommen Daten in Sicht aber Wert zeigt nicht, weil das Format ist anders. Dieses erforderliche Format (JJJJ-MM-TT)

Vielen Dank an alle.

+2

haben Sie versucht, '@ Html.TextBoxFor' ?? Ihr gerenderter HTML-Code hat 'value =" "' empty .. so ist es selbst in Ihrem Skript leer –

+1

Was ist Ihr Versuch zu tun? Wenn Sie einen Wert im Textfeld anzeigen möchten, legen Sie den Wert von "StartDate" im Controller fest, bevor Sie das Modell an die Ansicht übergeben. Und wenn Sie es formatieren wollen, verwenden Sie das 'DisplayFormatAttribute' (oder' TextBoxFor (m => m.StartDate, "{0: yyyy-MM-dd}", neu {...}) ') –

+1

@Reddy Vielen Dank Sie. – Selman

Antwort

1

Ihr Skript ist nicht erforderlich, und da Eigenschaft StartDate ist ein nullable DateTime? und hat keinen Wert (Ihre html hat value="") dann var dt = new Date(date); kehrt Invalid date weil var date = $('#StartDate').val(); kehrt null und das Skript fehlschlägt.

Sie müssen den Wert von StartDate in der Steuerung setzen, bevor Sie das Modell zur Ansicht übergeben, zum Beispiel

var model = new MyModel() { StartDate = DateTime.Today }; 
return View(model); 

, die im Eingang heutigen Datum angezeigt wird.

Um das gewünschte Format angezeigt werden, können Sie die DisplayFormatAttribute

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

Hinweis hinzufügen Hinzufügen der DataTypeAttribute bedeutet, dass Sie die type="date" von Ihrem EditorFor() Methode weglassen kann, dass durch das Verfahren hinzugefügt werden

Alternativ können Sie beide Attribute weglassen und verwenden

@Html.TextBoxFor(m => m.StartDate, "{0:yyyy-MM-dd}", new { @class = "form-control", type = "date" }}) 
Verwandte Themen