Мне нравится Consolas также, но я также как Анонимный: http://www.ms-studio.com/FontSales/anonymous.html
Вы можете передать дату в строке запроса, используя определенный формат, например ггггммдд, а затем правильно проанализировать его в вашем контроллере.
&date=02/12/2009
change to
&date=20091202 (yyyymmdd)
Вы можете создать оболочку вокруг объекта DateTime, экземпляр которого был создан с использованием этого нового формата, или просто проанализировать его самостоятельно в контроллере.
public MyWrapperDate(int date)
{
int year = date / 10000;
int month = ((date - (10000 * year)) / 100);
int day = (date - (10000 * year) - (100 * month));
this.DateTimeObject = new DateTime(year, month, day);
}
You could URL encode it, but passing a DateTime around as a string is always a bit tricky because you may run into parsing errors if the request ever crosses culture boundaries.
A better option is to convert the DateTime to Ticks and pass that number around.
MVC использует текущий язык и региональные параметры при создании моделей URL и привязки. Это имеет смысл в некоторых сценариях (например, когда у вас есть текстовое поле, и пользователь вводит в него дату), но часто возникают проблемы. Если у вас разные культуры, тогда будет проще, если значения всегда будут в формате для инвариантной культуры.
В вашем случае я бы передал значение как строку, отображаемую инвариантной культурой. Затем я бы использовал CustomModelBinder для заполнения свойства в модели.
Недостаток кофеина. Некоторые вещи не предназначены для понимания.
Очевидно, это ошибка первой версии .NET, которая не исправлена, потому что это может нарушить "устаревший" код.
Черт возьми, я только что нашел это:
Спасибо за ваши отзывы о .NET Framework! Мы согласны с тем, что это недосмотр и что тип свойства должен быть логическим. Однако довольно сложно (если не невозможно) внести это изменение в обратно совместимую версию (например, Orcas), потому что мы нарушим код любого клиента, полагаясь на сравнения строк. Так что, к сожалению, мы должны взвесить риск нарушения совместимости и преимущества чистоты API ... и когда дело доходит до наилучшей поддержки нашей клиентской базы, первое обычно выигрывает. Мы будем отслеживать это внутренне, чтобы улучшить ситуацию, и мы '