Ich habe ASP.NET MVC3 installiert. Ich brauche Datepicker mit formatiertem Datum. Ich habe es versucht, aber es funktioniert nicht (wenn Sie als Formatparameter "{0: dd/MM/yyyy}" übergeben, formatiert es immer noch nicht):
private static MvcHtmlString FormattedDateTextBoxFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression, string format, RouteValueDictionary htmlAttributes)
{
var metadata = ModelMetadata.FromLambdaExpression(expression, htmlHelper.ViewData);
if (metadata.Model != null && metadata.Model as DateTime? != null)
htmlAttributes.Add("value", string.Format(format, (DateTime)metadata.Model));
return htmlHelper.TextBoxFor(expression, htmlAttributes);
}
BEARBEITEN: Mein Code funktioniert, wenn das Format "{0: TT-MM-JJJJ}" ist, aber nicht nur für "{0: TT/MM/JJJJ}".
Ich weiß, dass MVC4 bereits diese Funktionalität hat, aber mein Projekt ist leider auf MVC3 geschrieben. Kannst du mir helfen?
Das einzige Format, das ich überhaupt bekommen habe, ist folgendes:
@Html.TextBoxFor(m => m.Birthdate, "{0:MM/dd/yyyy}")
Die Syntax lautet: @ Html.TextBoxFor (Ausdruck, Zeichenkettenformat, Objekt htmlAttributes)
z.B:
@Html.TextBoxFor(x => x.DateUtc, "{0:yyyy-MM-dd HH:mm:ss}",
new { @class = "form-control", placeholder = "Enter Title", id="myDate"})
Verwenden Sie in Ihrem Modell Folgendes:
[DisplayFormat(DataFormatString="{0:dd/MM/yyyy}")]
public DateTime YourDate { get; set; }
Folgendes sollte es in der Ansicht tun:
@Html.EditorFor(model => model.YourDate, new { @class = "date" })
Dies sollte Ihnen ein Datum geben, das auf das Format TT/MM/JJJJ formatiert ist.
dieses Format wird Ihnen helfen:
@Html.TextBoxFor(Model => Model._facadeLowdown.DoB, new { @value= Model._facadeLowdown.DoB.HasValue ? Model._facadeLowdown.DoB.Value.ToString("MM/dd/yyyy") : ""
}
Die Anzeige hängt von der Kultur ab. Und obwohl in den meisten Fällen alle anderen Antworten richtig sind, hat es für mich nicht funktioniert. Das Kulturproblem verursacht auch andere Probleme mit jQuery Datepicker, wenn es angehängt ist.
Wenn Sie das Format-Escape auf folgende Weise erzwingen möchten:
@Html.TextBoxFor(model => model.YourDate, "{0:MM\\/dd\\/yyyy}")
Wenn es für mich nicht entkommen ist, wird 08-01-2010
vs. erwarteter 08/01/2010
angezeigt.
Wenn es nicht mit einem Escapezeichen versehen ist, wählt jQuery datepicker ein anderes defaultDate aus, in meiner Instanz war es May 10, 2012
.