Литерал - это правильный подход, на мой взгляд, чтобы избежать беспорядка, вы можете красиво обернуть его некоторыми функциями.
Во-первых, используйте один буквенный элемент управления, который будет заполнителем сообщений:
<asp:Literal id="litMessages" runat="server" />
Во-вторых, используйте CSS для более элегантных и гибких цветов, например:
<style type="text/css">
.msg_information { color: blue; }
.msg_error { color: red; }
.msg_warning { color: purple; }
</style>
Теперь есть эта функция:
void AddMessage(string message, string type)
{
string strHTML = string.Format("<div class=\"msg_{0}\">{1}</div>", type, message);
litMessages.Text += strHTML;
}
И, наконец, для добавления сообщения в любом месте вашего кода есть такой код:
AddMessage("method started successfully", "information");
AddMessage("Failed to do this: " + someErrorMessage, "error");
AddMessage("Value is empty", "warning");
Вы можете сделать его еще более элегантным, используя enum
для типа сообщения и более, но вышеперечисленного достаточно для базовых потребностей. :)
Имея каждое сообщение в своем собственном <div>
, вы автоматически переводите его в отдельную строку и можете легче контролировать каждое сообщение с помощью CSS.
Редактировать: мой код на C #, но также может быть легко преобразован в VB.NET.