Я создаю веб-сайты ASP.NET 2.0, и в настоящее время у меня есть несколько собственных сборок для DAL, некоторые бизнес-объекты и другие общие материалы. Я собрал базовый набор объектов для обработки сообщений в пользовательском интерфейсе (то есть ошибки и другие сообщения о состоянии). Он состоит из:
StatusMessage , который имеет свойство text и свойство color для описания отображаемого сообщения. Он также имеет статический метод Send, который создает свой экземпляр и помещает его в переменную Session.
StatusMessageDisplay , который в основном является объектом Label с методом Refresh, переопределенным для получения StatusMessage из сеанса, очистки переменной Session и отображения сообщения.
В целом это сработало довольно хорошо. Однако есть несколько вещей, которые мне не нравятся:
Он может обрабатывать только одно сообщение за раз, если два сообщения отправляются до их отображения, первое теряется. Я мог бы создать список сообщений для отображения, но я не уверен, что хочу начать создавать списки в объекте Session.
Он привязан к Session и, следовательно, HttpContext. Я стараюсь не вкладывать много в объект Session, а с HttpContext сложно работать для тестирования. В настоящее время я обертываю HttpContext в другой объект, который я могу использовать для тестирования
В моей текущей реализации, если сообщение передается из запроса AJAX, сообщение отображается с опозданием (следующий запрос синхронизации), поскольку элемент управления StatusMessageDisplay не поддерживает / запускает AJAX.
Прежде чем я начну опираться на то, что я должен исправить эти проблемы, я хотел бы узнать, что другие сочли полезным для этого. Что мне действительно нужно, так это что-то похожее на flash-объект в Rails или, может быть, лучшую альтернативу?