Ich erhalte eine DateTime von einer impliziten Bindung an einer Aktion in einer .NET MVC-Webanwendung. Das Problem ist, dass ich das Datum im Format "MM/TT/JJJJ" bekomme, während ich es durch eine Abfragezeichenkette mit Ajax im Format "TT/MM/JJJJ" sende.DateTime.Parse funktioniert nicht auf einem benutzerdefinierten MVC-Binder
Ich weiß, dass dies ein bekanntes Problem der .NET MVC-Sammelmappe bei Verwendung des GET-Protokolls und nicht POST ist, also habe ich einen benutzerdefinierten Binder implementiert, um das Datum im richtigen Format zu analysieren. Hier ist der Code:
Aber mit diesem Code funktioniert die Parse nicht, es tut einfach nichts. Ich teste es mit einem Datum wie "01.04.2014 11:37:00" (April) und ich bekomme am "result.Date" das Datum "04/01/2014 11:37:00" (Januar), vor und nach Parsing.
Die Frage ist also: Warum analysiert die Methode "DateTime.Parse" das Datum nicht korrekt?
UPDATE:
Hier ist der Code des SearchVM:
[ModelBinder(typeof(SearchVMBinder))]
public class SearchVM
{
public DateTime Date { get; set; }
public string StudyCaseNumber { get; set; }
public string PatientNumber { get; set; }
public string PatientName { get; set; }
public string PatientFamilyName { get; set; }
public string PatientMothersMaidenName { get; set; }
public string DoctorName { get; set; }
public string RoomName { get; set; }
public E_OrderedBy OrderBy { get; set; }
}
und hier der Kopfzeile der Aktion des Controllers:
public ActionResult ListSearch(SearchVM searchFilter)
Danke.
Lassen Sie uns Ihren Code für das Modell sehen. –
@MorgoZ Versuchen Sie, dateTime als UTC-String zu posten, damit Sie diese Lösung lösen können – praguan
Können Sie versuchen, wie folgt: result.Date = DateTime.ParseExact (result.Date, "TT/MM/JJJJ", null); –