У меня есть приложение, полное страниц и пользовательских элементов управления, многие из которых имеют один или несколько элементов управления метками для отображения различных сообщений пользователю.
Пример: пользовательский элемент управления AddCompany.ascx, обычно используемый на странице Company.aspx (с App.Master MasterPage), имеет метку с именем "OutOfCreditLabel" с Text = "Ошибка: вы не можете создать новую компанию, так как вы вне кредита ». Код проверяет кредит и показывает метку, если необходимо.
Я хочу избавиться от всех этих ярлыков повсюду, и у меня есть метод, который я могу вызвать из любого места, например
ShowUserMessage("Text goes here");
В предыдущих проектах я реализовал это как одну метку на главной странице и публичный метод в .master.cs - до тех пор, пока страница имеет строку
<%@ MasterType VirtualPath="~/App.master" %>
в нем это работает - но я не могу заставить его работать на пользовательских элементах управления (.ascx.cs). Есть ли хитрость в этом?
Или ... Есть ли лучший способ?
Что бы вы порекомендовали для «глобального» метода сообщений пользователя, который работает из любой точки сайта?
Какие-нибудь хорошие решения jQuery, возможно?
Update
RPM1984 попросил дать дополнительные разъяснения, поэтому я пытаюсь задать это по-другому:
Мне нужен метод, который я могу вызвать из выделенного кода (страницы или пользовательского элемента управления ), который затем отображает любой текст, который я указываю пользователю, например, как stackoverflow сообщает вам о новых ответах на ваш вопрос при следующем посещении сайта. Это может быть вверху окна (например, SO) или где-то на странице, не имеет значения. Важно то, что это «глобальный» подход, а не наличие различных предупреждений javascript и ярлыка asp: на каждой странице и пользовательском элементе управления проекта.
Примерно такой сценарий:
Пользователь нажимает кнопку «Создать виджет» на моем элементе управления «Менеджер виджетов» на моей странице. В обработчике событий есть:
if (User.IsOutOfCredit)
{
ShowUserMessage("Sorry, you cannot create widgets; you are out of credit.");
}
Это приводит к тому, что пользователь видит: «Извините, вы не можете создавать виджеты; у вас нет кредита». Либо во всплывающем окне, либо в красном тексте на странице где-нибудь или вверху, например, StackOverflow, все в порядке
Имеет ли это смысл?