问题:
鉴于我的 Asp.NET Web API 设置如下
Platform: ASP.NET 4.5, Owin, C#,
Globalisation Culture: en-GB
当我在 ApiController 中使用 UrlHelper 创建一个 URL 链接时,日期设置为今天,2016 年 9 月 2 日:
var someObject = new SomeObject{ ..., DateFrom = DateTime.Today, ... };
base.Url.Link("whatever", someObject );
然后我得到一个日期编码为 en-US (09/02/2016 00:00:00) 的结果
http://localhost:52321/...DateFrom=09%2F02%2F2016%2000%3A00%3A00
问题
如何覆盖该过程以使输出更“友好”,从而
http://localhost:52321/...DateFrom=2016-09-02
如何在不转换为带有字符串日期的匿名对象的情况下实现这一点,因此
var someObject = new SomeObject{ ..., DateFrom = DateTime.Today, ... };
var anon = new { ..., DateFrom = someObject.DateFrom.ToString("yyyy-MM-dd"), ...}
base.Url.Link("whatever", anon ); // no thanks
更新
至少,我希望编码为 en-GB (02/09/2016 00:00:00)。因为我发现这种行为很奇怪,因为我目前的文化是 en-GB 而不是 en-US。因此...
http://localhost:52321/...DateFrom=02%2F09%2F2016%2000%3A00%3A00