NToastNotify
8.0.0
서버 측 토스트 알림 렌더링.
AJAX 호출에 대한 토스트 알림. XMLHTTPRequests - 전체 지원. fetch API - 부분 지원(샘플 참조)
기능 폴더 프로젝트 구조를 지원합니다.
여러 클라이언트 라이브러리(toastr.js 및 noty.js)를 지원합니다. 더 많은 것을 지원하도록 쉽게 확장할 수 있습니다.
노티 | 원천
토스트 | 원천
Visual Studio Nuget 패키지 관리자 - Install-Package NToastNotify
dotnet CLI - dotnet add package NToastNotify
IMVCBuilder
또는 IMVCCoreBuilder
에서 확장 방법을 사용하십시오.using 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 매개 변수는 토스트 라이브러리에 대한 전역 옵션 역할을 합니다. 옵션이 제공되지 않으면 전역 설정이 기본 toastr 옵션이 됩니다.
공개 무효 구성(IApplicationBuilder 앱, IHostingEnvironment env) {//참고 이 줄은 .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();}공개 IActionResult About(){_toastNotification.AddInfoToastMessage( "리디렉션되었습니다.");return View();}공개 IActionResult Contact(){_toastNotification.AddAlertToastMessage("리디렉션됩니다.");return RedirectToAction("정보");}public IActionResult Error(){_toastNotification.AddErrorToastMessage("이 요청에 문제가 있습니다.");return View ();}공용 IActionResult 비어있음(){return View();}공용 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;}공용 IActionResult Index(){_toastNotification.AddSuccessToastMessage();_toastNotification.AddErrorToastMessage("테스트 오류", 새 NotyOptions(){Timeout = 0});반환 View();}public IActionResult About(){ViewData["Message"] = "애플리케이션 설명 페이지.";_toastNotification.AddAlertToastMessage("내 정보 경고 메시지");return View();}public IActionResult Contact(){ ViewData["Message"] = "연락처 페이지.";_toastNotification.AddInfoToastMessage("혼동하지 마십시오. <br /> <strong>연락처 페이지에서 리디렉션되었습니다. <strong/>");return RedirectToAction("정보");}public IActionResult Error(){_toastNotification.AddErrorToastMessage("이 요청에 문제가 있습니다.");return View(new ErrorViewModel { RequestId = Activity.Current? .Id HttpContext.TraceIdentifier });}공개 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 후에 토스트가 표시되지 않음
FIX CookieTempDataProvider(기본값)를 사용하는 경우 쿠키 정책 프롬프트를 수락해야 합니다.
npm install
npm build
dotnet restore
dotnet build
샘플 프로젝트 디렉터리에서 dotnet run
사용하여 샘플 프로젝트를 실행합니다.