Архитектура веб-страницы в ASP.NET предполагает разделение разметки и кода, но очень часто это правило нарушается. Например, приветствие выводится так:
txtWelcome.Text = string.Format("Здравствуйте <b>{0}/<b>", userFullName);
Или даже формируется целый блок html-кода внутри cs-файла. Такой подход очень неудобен.
Во-первых, поменять разметку и сообщение становится затруднительным - вполне вероятно придется перекомпилировать проект. Во-вторых, в aspx-разметку (которая может быть сделана либо с помощью css либо просто с помощью html-тегов) вмешивается разметка, приходящая из cs-файла, что может дать совсем не ожиданный результат. В-третьих, даже отладив всю разметку есть вероятность, что однажды возникнет необходимость ее поменять. А вот тут разработчиков и дизайнеров ждет сюрприз - часть разметки зашита в cs-код. Особенно дизайнеры радуются :)
Я рекомендую никогда не смешивать разметку и код. В случае отображения сообщения в aspx‑файле можно хранить полностью метку приветствия:
Здравствуйте, <b><asp:Label ID="lblWelcom" runat="server" /></b>
А в cs-файле присваивать значение поля lblWelcom.Text.
Либо, если есть такая необходимость, записывать значение метки вместе с указателями параметров и форматированием:
<asp:Label ID="lblWelcom" runat="server" Text="Здравствуйте, {0}" />
Но тогда при форматировании этой строки использовать ее саму как параметр функции форматирования:
lblWelcom.Text = string.Format(lblWelcom.Text, "Иван Иванович");
Такой код заменит параметры в метке и отобразит правильное сообщение, но оставит само сообщение в aspx-файле, а код работы с данными в cs-файле.
No comments:
Post a Comment