Я создаю приложение для веб-форм, где я использую JS lib Toastr для отображения сообщений пользователю.Это прекрасно работает ... для большинства частей.Мое приложение спроектировано так:
Мастер - Вложенный мастер - Страница - Пользовательский контроль
Я реализовал вызов Toastr в Мастер:
public void ShowToastr(Page page, string message, string title, string type = "info")
{
ScriptManager.RegisterStartupScript(page, page.GetType(), "toastr_message",
$"toastr.{type.ToLower()}('{message}', '{title}');", addScriptTags: true);
}
У меня есть виртуальный путьустановите на каждой главной странице и странице содержимого:
файл Admin.master
<%@ MasterType VirtualPath="~/Areas/Shared/Site.Master" %>
Страница SystemSettings.aspx
<%@ MasterType VirtualPath="~/Areas/Administration/Admin.Master" %>
UserCntrol находится на странице SystemSettings.aspx
Затем я вызываю метод SiteMaster, подобный этому, из пользовательского элемента управления
((SystemSettings)this.Page).Master.Master.ShowToastr(this.Page, "Property successfully updated.", "Success", $"{nameof(ToastrTypeEnum.Success)}");
Это прекрасно работает .... пока я не помещу пользовательский элемент управления на другую страницу (хочу иметь возможность использовать элементы управления вбольше, чем одно место.
Я пробовал несколько вещей после поиска в Интернете.
(this.Page.Master as SiteMaster)?.ShowToastr(this.Page, "Property successfully updated.", "Success", $"{nameof(ToastrTypeEnum.Success)}");
также
SiteMaster _m = (SiteMaster)Page.Master;
_m.ShowToastr(this.Page, "Unable to save new property", "Error", $"{nameof(ToastrTypeEnum.Error)}");
Любой, у кого есть предложения о том, какчтобы решить это ??