Связывание и преобразование свойств DateTime на всех моделях с ASP.NET MVC 3 - PullRequest
2 голосов
/ 09 февраля 2011

Мне просто интересно, есть ли у кого-нибудь метод привязки свойств DateTime к моделям, чтобы они отображались в представлениях в выбранном пользователем часовом поясе, но Модель использует их в качестве UTC для хранения в базе данных.

Я использую ASP.NET MVC 3 с базой данных SQL Server 2005, но вскоре она будет обновлена ​​до 2008 года и будет означать, что я могу использовать новые типы datetime, если это поможет с решением.

Я использую код изэто сообщение , и это хорошо работает при привязке информации о дате и времени, опубликованной в представлении, и я предполагаю, что с небольшим дополнительным кодом, я могу легко преобразовать данные в UTC.

ТакЯ предполагаю, что у меня есть 2 варианта, с которыми мне нужна помощь:

  1. Пользовательский рендерер

Есть ли способ переопределить объект, который отображает данные в представление, чтобыДата UTC преобразуется в часовой пояс пользователя при отображении представления, тогда уже имеющийся у меня пользовательский связыватель преобразует его обратно для хранения в БД.

  1. Является лилучший способ, о котором я не знаю?

Эта функция доступна на многих сайтах (я уже использую ее в первой версии этого сайта, которую я сделал в обычном ASP.NET), но прежде чем я пошел и снова использовал те же методы (у меня была статическая функция, которую я вызывал при отображении информации, а затем аналогичный вызов функции перед сохранением), я просто хотел узнать, есть ли у кого-нибудь лучшее решение.

Спасибо Марк

1 Ответ

1 голос
/ 09 февраля 2011

Вы можете использовать Html.EditorFor и Html.DisplayFor с настроенным шаблоном для DateTime. Вам все еще понадобится пользовательское связующее, хотя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...