Representación de notificaciones del sistema del lado del servidor.
Notificación de brindis en llamadas AJAX. Solicitudes XMLHTTP: soporte completo. buscar API: soporte parcial (ver ejemplo).
Admite la estructura del proyecto de carpetas de funciones.
Admite múltiples bibliotecas de clientes: tostador.js y noty.js. Se puede ampliar fácilmente para admitir más.
noty | Fuente
Tostadora | Fuente
Administrador de paquetes de Visual Studio Nuget: Install-Package NToastNotify
CLI de dotnet: dotnet add package NToastNotify
IMVCBuilder
o IMVCCoreBuilder
usando NToastNotify.Libraries;services.AddMvc().AddNToastNotifyToastr(new ToastrOptions(){ProgressBar = false,PositionClass = ToastPositions.BottomCenter});//O simplemente vaya a services.AddMvc().AddNToastNotifyToastr();
usando NToastNotify.Libraries;services.AddMvc().AddFeatureFolders().AddNToastNotifyNoty(new NotyOptions {ProgressBar = true,Timeout = 5000,Theme = "mint"});//O simplemente goservices.AddMvc().AddNToastNotifyNoty();
Nota: asegúrese de tener las declaraciones de uso necesarias.
El parámetro ToastrOption actúa como opciones globales para la biblioteca del sistema. Si no se proporcionan opciones, la configuración global serán las opciones predeterminadas de la tostadora.
Configuración pública vacía (aplicación IApplicationBuilder, entorno IHostingEnvironment) {//NOTA, esta línea debe estar encima de .UseMvc() line.app.UseNToastNotify();app.UseMvc(routes =>{routes.MapRoute(name: "default",template: "{controller=Home}/{action =Índice}/{id?}");}); }
@await Component.InvokeAsync("NToastNotify")
La línea anterior muestra la Vista necesaria para el componente de vista. Aunque puede colocar esta línea en cualquier lugar dentro de la etiqueta de head
o body
, se recomienda colocar esta línea al final antes de la etiqueta de cierre body
.
public class HomeController: Controlador{privado de solo lectura IToastNotification _toastNotification;public HomeController(IToastNotification tostadoNotification){_toastNotification = tostadoNotification;}public IActionResult Index(){//Prueba de métodos predeterminados//Success_toastNotification.AddSuccessToastMessage("Lo mismo para el mensaje de éxito");// Éxito con las opciones predeterminadas (teniendo en cuenta los valores predeterminados sobrescritos al inicializar en Startup.cs)_toastNotification.AddSuccessToastMessage();//Info_toastNotification.AddInfoToastMessage();//Warning_toastNotification.AddWarningToastMessage();//Error_toastNotification.AddErrorToastMessage();return View();}public IActionResult About(){_toastNotification.AddInfoToastMessage("Fuiste redirigido");return View();}public IActionResult Contact(){_toastNotification.AddAlertToastMessage("Serás redirigido");return RedirectToAction("Acerca de");}public IActionResult Error(){_toastNotification.AddErrorToastMessage("Hubo algún problema con esta solicitud.");return View();}public IActionResult Empty(){return View();}public IActionResult Ajax(){_toastNotification.AddInfoToastMessage("Esta página realizará solicitudes ajax y mostrará notificaciones.");return View();}public IActionResult AjaxCall (){System.Threading.Thread.Sleep(2000);_toastNotification.AddSuccessToastMessage("Este brindis se muestra en Solicitud de Ajax. AJAX CALL " + DateTime.Now.ToLongTimeString());return PartialView("_PartialView", "Ajax Call");}public IActionResult NormalAjaxCall(){return PartialView("_PartialView", "Normal Ajax Call");}public IActionResult ErrorAjaxCall(){lanzar nueva excepción ("Se produjo un error");}}
clase pública HomeController: Controlador {IToastNotification privado de solo lectura _toastNotification; HomeController público (IToastNotification tostadoNotificación) {_toastNotification = tostadoNotificación;}Índice público IActionResult(){_toastNotification.AddSuccessToastMessage();_toastNotification.AddErrorToastMessage("Test Erro", new NotyOptions(){Timeout = 0});return View();}public IActionResult About(){ViewData["Message"] = "Página de descripción de su aplicación.";_toastNotification.AddAlertToastMessage("Mi mensaje de advertencia acerca de");return View();}public IActionResult Contact(){ViewData["Message"] = "Su página de contacto.";_toastNotification.AddInfoToastMessage("No se confunda. <br /> <strong>Fue redirigido desde la página de contacto <strong/>");return RedirectToAction("About");}public IActionResult Error(){_toastNotification.AddErrorToastMessage("Hubo algún problema con esta solicitud."); return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });}public IActionResult Ajax(){_toastNotification.AddInfoToastMessage("Esta página realizará solicitudes ajax y mostrará notificaciones.");return View();}public IActionResult AjaxCall(){System.Threading.Thread.Sleep(2000);_toastNotification.AddSuccessToastMessage(" Este brindis se muestra a petición de Ajax. AJAX CALL " + DateTime.Now.ToLongTimeString());return PartialView("_PartialView", "Ajax Call");}public IActionResult NormalAjaxCall(){return PartialView("_PartialView", "Normal Ajax Call");}public IActionResult ErrorAjaxCall(){lanzar nueva excepción ("Se produjo un error");}}
El brindis no se muestra después de POST-REDIRECCIÓN
REVISIÓN Si está utilizando CookieTempDataProvider (este es el valor predeterminado), debe aceptar la solicitud de política de cookies.
npm install
npm build
dotnet restore
dotnet build
Ejecute cualquier proyecto de muestra usando dotnet run
desde el directorio del proyecto de muestra