Ich sehe, es gibt einige ähnliche Fragen dazu, aber keine lösen mein Problem.MVC3 Validierung mit ComponentModel.DataAnnotations für UK Datumsformat (auch mit jquery ui datepicker)
Ich arbeite an einer MVC3 App mit Entity Framework 4.3. Ich habe ein britisches Datumsfeld, das ich dem Benutzer erlauben möchte, mit dem Jquery UI Datepicker zu bearbeiten (was ich dank this blog arbeiten konnte).
Glücklicherweise enthält dieser Blog Anweisungen zur Erstellung des Datumsempfängers im UK-Format, aber die EF-Validierung sagt mir immer noch, dass ich ein gültiges Datumsformat eingeben muss. Leider hindert es mich nicht daran, das Datum an die DB zu senden, es ist nur die unaufdringliche Bestätigung, die eintritt und die Nachricht anzeigt.
Im Moment habe ich folgende Daten Anmerkung haben:
[DataType(DataType.Date)]
public System.DateTime Module_Date { get; set; }
, aber ich habe auch versucht, und fügte hinzu:
[DisplayFormat(DataFormatString="{0:dd/MM/yyyy}")]
, die überhaupt keine Wirkung hatte. Ich hoffe, dass jemand eine Lösung hat, weil ich nicht die unaufdringliche Validierung deaktivieren möchte, um diese Fehlermeldung zu stoppen.
Dank
EDIT
folgende @Iridio Antwort, ich sah in ein Modell Bindung und fügte hinzu, und zwar von den wenigen Stellen wie diese, die ich es gelesen schien das Richtige zu sein, zu tun , aber was ich herausgefunden habe, hat keine Wirkung. hier ist das, was ich versucht habe:
public class DateTimeBinder : IModelBinder
{
public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
var value = bindingContext.ValueProvider.GetValue(bindingContext.ModelName);
var date = value.ConvertTo(typeof(DateTime), CultureInfo.CurrentCulture);
return date;
}
}
mit diesem in der Application_Start()
Methode der Global.asax.cs
Datei:
ModelBinders.Binders.Add(typeof(DateTime), new DateTimeBinder());
ModelBinders.Binders.Add(typeof(DateTime?), new DateTimeBinder());
Ich glaube, Sie beziehen sich eher auf die System.ComponentModel.DataAnnotations als auf die EntityFramework-Datenanmerkungen? Wenn Sie dem Blog gefolgt sind, geben Sie dann das Datenformat '{dateFormat:" dd/mm/yy "}' in Ihrem clientseitigen Skript an? Wenn ja, welche Version des jquery-ui-Skripts verwenden Sie? – Dangerous
oooh Sie sind ziemlich korrekt, ich verwende die ComponentModel. Ich habe mich daran gewöhnt, die EF beim letzten Projekt zu verwenden. werde Dich auf dem Laufenden halten. Ich war mit jQuery UI 1.8.7, aber ich habe unten ohne Erfolg, wie pro Ihre Antwort auf die neuesten aktualisierten – Ben
oh und ja, ich habe 'angegeben {Datumsformat:„dd/mm/yyyy“}' – Ben