<%= Html.ActionLink(Html.Encode("user3"),
"Filter", new { controller = "Search",
userName = "user3",
dateFrom = DateTime.Now.AddDays(-2).ToString(),
dateTo = DateTime.Now.ToString() })%>
评估此链接:
http://localhost:60357/Search/Filter?userName=user3&dateFrom=08.02.2010%2023%3A21%3A33&dateTo=10.02.2010%2023%3A21%3A33
我必须注意到Windows中当前的全球化设置已设置为欧洲日期格式。所以08.02.2010 = 2010年2月8日。
但是在动作方法中
public ActionResult Filter(String userName, DateTime dateFrom, DateTime dateTo)
dateFrom的值为02.08.2010 = 2010年8月2日
这是不正确的。是框架错误吗?那么解决这个问题的最佳方法是什么?如果可能的话,我不想写一些monkeypatch。
答案 0 :(得分:5)
请勿使用DateTime.Now.ToString()
。使用DateTime.Now.ToString("s")
(ISO 8601格式 - yyyy-MM-ddTHH:mm:ss)只有一种方法可以解释它,所以它永远不会错 - 至少,直到你开始处理时区! (考虑"u"
格式。)