2010-02-10 5 views
5
<%= Html.ActionLink(Html.Encode("user3"), 
    "Filter", new { controller = "Search", 
    userName = "user3", 
    dateFrom = DateTime.Now.AddDays(-2).ToString(), 
    dateTo = DateTime.Now.ToString() })%> 

Es ist zu diesem Link ausgewertet:ASP.NET MVC 2 Beta: DateTime-Konvertierung. Bug oder nicht?

http://localhost:60357/Search/Filter?userName=user3&dateFrom=08.02.2010%2023%3A21%3A33&dateTo=10.02.2010%2023%3A21%3A33 

Ich stelle fest, müssen die aktuellen Globalisierungseinstellungen in Windows werden nach europäischem Datumsformat einrichten. So = 08.02.2010 8. Februar 2010

Aber in der Aktionsmethode

public ActionResult Filter(String userName, DateTime dateFrom, DateTime dateTo) 

datefrom hat den Wert 02.08.2010 2. August = 2010

Es ist nicht korrekt. Ist es Framework-Fehler? Was ist der beste Weg, um dieses Problem zu lösen? Ich möchte, wenn möglich, keinen Monkey schreiben.

+1

+1 für 'Monkeypatch'. – womp

Antwort

5

Verwenden Sie nicht DateTime.Now.ToString(). Verwenden Sie DateTime.Now.ToString("s") (ISO 8601-Format - JJJJ-MM-TTHH: MM: SS) Es gibt nur eine Möglichkeit, dies zu interpretieren, also ist es nie falsch - zumindest, bis Sie beginnen, mit Zeitzonen umzugehen! (Betrachten Sie hierzu das Format "u".)

+0

Sie haben definitiv Recht! Vielen Dank! – Overdose