Переопределение формата DateTime в System.Web.Http.UrlHelper
Проблема:
Учитывая, что мой Asp.NET Web API настроен следующим образом
Platform: ASP.NET 4.5, Owin, C#,
Globalisation Culture: en-GB
Когда я создаю ссылку Url с помощью UrlHelper в ApiController с датой, установленной на Сегодня, 2 сентября 2016 года:
var someObject = new SomeObject{ ..., DateFrom = DateTime.Today, ... };
base.Url.Link("whatever", someObject );
Тогда я получаю результат, где дата закодирована в en-US (02.09.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 (09.02.2016, 00:00:00). Потому что я нахожу поведение очень странным, поскольку моя нынешняя культура - en-GB, а не en-US. Таким образом,...
http://localhost:52321/...DateFrom=02%2F09%2F2016%2000%3A00%3A00