Вывод пользовательского формата MVC - PullRequest
1 голос
/ 25 января 2011

У меня есть проект C # MVC, и я могу позволить пользователям выбирать способ вывода своих данных (например, скорость в км / ч, время в CST, ESt и т. Д., Расстояние в километрах, милях, метрах, Гектары и т. Д.). Вместо того, чтобы каждый раз возвращаться к БД для получения настроек, при входе в систему я помещаю его в зашифрованную часть пользовательских данных куки-файлов. Я также использую шаблон сервис-репозиторий, в котором мои сервисы реализованы в BLL, а модели - в BOL. Я также возвращаю данные как JsonResults (используя библиотеку NewtonSoft). Какова лучшая стратегия (где и как) преобразовать данные в указанный пользователем тип, не передавая информацию о предпочтениях этого модуля в уровни бизнес-логики? Сначала я думал об использовании customAttributes и о написании собственного actionResult CustomJsonResult, который использовал бы отражение и генерировал строку Json, но для этого потребовался бы мой собственный алгоритм обхода объекта. Моя главная задача - я хочу, чтобы мое приложение не сохраняло состояния.

1 Ответ

0 голосов
/ 25 января 2011

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

Другой возможностью является использование пользовательских HTML-помощников внутри вашего представления, которые будут принимать значение модели и на основе пользовательских настроек, сохраненных в выводе cookie, выполнять преобразование и выводить отформатированную строку.

...