Отрисовка всплывающих уведомлений на стороне сервера.
Всплывающее уведомление о вызовах AJAX. XMLHTTPRequests — Полная поддержка. fetch API — частичная поддержка (см. пример).
Поддерживает структуру проекта папки Feature.
Поддерживает несколько клиентских библиотек: toastr.js и noty.js. Может быть легко расширен для поддержки большего количества.
Ноты | Источник
Тоастр | Источник
Диспетчер пакетов Visual Studio Nuget — Install-Package NToastNotify
CLI dotnet — dotnet add package NToastNotify
IMVCBuilder
или IMVCCoreBuilder
используя NToastNotify.Libraries;services.AddMvc().AddNToastNotifyToastr(new ToastrOptions(){ProgressBar = false,PositionClass = ToastPositions.BottomCenter});//Или просто зайдите в Services.AddMvc().AddNToastNotifyToastr();
используя NToastNotify.Libraries;services.AddMvc().AddFeatureFolders().AddNToastNotifyNoty(new NotyOptions {ProgressBar = true,Timeout = 5000,Theme = "mint"});//Или просто goservices.AddMvc().AddNToastNotifyNoty();
Примечание. Убедитесь, что у вас есть необходимые операторы using.
Параметр ToastrOption действует как глобальный параметр для библиотеки всплывающих уведомлений. Если параметры не указаны, глобальные настройки будут параметрами тоастра по умолчанию.
public void Настройка (приложение IApplicationBuilder, среда IHostingEnvironment) {//ПРИМЕЧАНИЕ: эта строка должна быть выше .UseMvc() line.app.UseNToastNotify();app.UseMvc(routes =>{routes.MapRoute(name: "default",template: "{controller=Home}/{action) =Индекс}/{id?}");}); }
@await Component.InvokeAsync("NToastNotify")
Приведенная выше строка отображает представление, необходимое для компонента представления. Хотя вы можете разместить эту строку в любом месте внутри тега head
или body
, рекомендуется размещать эту строку в конце перед закрывающим тегом body
.
public class HomeController : Controller{private readonly IToastNotification _toastNotification;public HomeController(IToastNotification toastNotification){_toastNotification = toastNotification;}public IActionResult Index(){//Тестирование методов по умолчанию //Success_toastNotification.AddSuccessToastMessage("То же самое для сообщения об успехе");// Успех с параметрами по умолчанию (принимая во внимание учитывать перезаписанные значения по умолчанию при инициализации в Startup.cs)_toastNotification.AddSuccessToastMessage();//Info_toastNotification.AddInfoToastMessage();//Warning_toastNotification.AddWarningToastMessage();//Error_toastNotification.AddErrorToastMessage();return View();}public IActionResult About(){_toastNotification.AddInfoToastMessage("Вы были перенаправлены");return View();}public IActionResult Contact(){_toastNotification.AddAlertToastMessage("Вы будете перенаправлены");return RedirectToAction("О программе");}public IActionResult Error(){_toastNotification.AddErrorToastMessage("Что-то не так с этим request.");return View();}public IActionResult Empty(){return View();}public IActionResult Ajax(){_toastNotification.AddInfoToastMessage("Эта страница будет выполнять ajax-запросы и показывать уведомления.");return View( );}public IActionResult AjaxCall(){System.Threading.Thread.Sleep(2000);_toastNotification.AddSuccessToastMessage("Этот тост отображается по запросу Ajax. AJAX CALL " + DateTime.Now.ToLongTimeString()); return PartialView("_PartialView", "Ajax Call");}public IActionResult NormalAjaxCall(){return PartialView("_PartialView", "Normal Ajax Call");}public IActionResult ErrorAjaxCall(){выдать новое исключение («Произошла ошибка»);}}
общедоступный класс HomeController: Контроллер {частный только для чтения IToastNotification _toastNotification; общедоступный HomeController (IToastNotification toastNotification) {_toastNotification = toastNotification;} public IActionResult Index() {_toastNotification.AddSuccessToastMessage(); _toastNotification.AddErrorToastMessage ("Ошибка теста", новый NotyOptions(){Timeout = 0});return View();}public IActionResult About(){ViewData["Message"] = "Страница описания вашего приложения.";_toastNotification.AddAlertToastMessage("Мое предупреждающее сообщение о программе");return View();}public IActionResult Contact(){ViewData["Message"] = "Ваш контакт page.";_toastNotification.AddInfoToastMessage("Не запутайтесь. <br /> <strong>Вы были перенаправлены со страницы контактов. <strong/>");return RedirectToAction("О программе");}public IActionResult Error(){_toastNotification .AddErrorToastMessage("С этим запросом что-то не так.");return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });}public IActionResult Ajax(){_toastNotification.AddInfoToastMessage("Эта страница будет выполнять запросы ajax и показывать уведомления.");return View();}public IActionResult AjaxCall(){System.Threading.Thread.Sleep(2000);_toastNotification.AddSuccessToastMessage("Этот тост отображается по запросу Ajax. AJAX CALL " + DateTime.Now.ToLongTimeString()); return PartialView("_PartialView", "Ajax Call");}public IActionResult NormalAjaxCall(){return PartialView("_PartialView", "Normal Ajax Call");}public IActionResult ErrorAjaxCall(){выдать новое исключение («Произошла ошибка»);}}
Тост не отображается после POST-REDIRECT
ИСПРАВЛЕНИЕ Если вы используете CookieTempDataProvider (это значение по умолчанию), вам необходимо принять запрос политики использования файлов cookie.
npm install
npm build
dotnet restore
dotnet build
Запустите любой пример проекта с помощью dotnet run
из каталога примера проекта.