FlashMessage
FlashMessage copied to clipboard
FlashMessage provides easy cross request notifications for ASP.NET MVC based on Twitter Bootstrap alerts.
FlashMessage
| ASP.NET version | Package |
|---|---|
| ASP.NET Core 2 and up | |
| ASP.NET Classic and Core 1 |
FlashMessage provides easy cross request notifications for ASP.NET MVC based on Twitter Bootstrap 3 and up. It solves the problem with flashing the user a notification or message when using the Post/Redirect/Get pattern and RedirectToAction() method.

Quickstart
Install the FlashMessage NuGet package :
Install-Package Vereyon.Web.FlashMessage
Register the flash message service in your startup class:
// Add services required for flash message to work.
services.AddFlashMessage();
Inject IFlashMessage in your controllers:
public HomeController(IFlashMessage flashMessage)
Queue some messages in your action method:
_flashMessage.Confirmation("Your confirmation message");
Register the tag helper in your view and have the messages rendered using <flash />:
@addTagHelper *, Vereyon.Web.FlashMessage
<flash dismissable="true" />
Upgrading to version 2.0
When updating from FlashMessage 1.x, the following changes need to be taken into account:
- FlashMessage now only supports .NET Standard 2.0 and up.
- Some of the short hand methods to queue messages have been changed:
- The Queue() methods have all been removed, except for the one taking a
FlashMessageModelinstance. - Methods accepting a string format args have removed.
- Consistently put message parameter first, title second.
- The HtmlHelper has been replaced with a Razor tag helper.
Usage
ASP.NET Core 2 and up
Install the FlashMessage NuGet package and import the Vereyon.Web namespace where you need it.
Install-Package Vereyon.Web.FlashMessage
Registering required services for depencency injection
Register the required services during startup of you application:
// Add services required for flash message to work.
services.AddFlashMessage();
Rendering flash messages
Typically you'll want to render all queued flash messages in your Layout Razor template. For this purpose a tag helper is available. Register the tag helper in your view as follows:
@addTagHelper *, Vereyon.Web.FlashMessage
Use the tag helper by writing <flash />. Optionally you can indicate the messages should be dismiss by setting dismissable="true":
<flash dismissable="true" />
By default, messages will be rendered for compatibility with Twitter Bootstrap 5. In case a different Bootstrap version is desired, this can be set using the bootstrap-version attribute:
<flash bootstrap-version="3" />
Queuing flash messages
In order to be able to queue flash messages you'll need a reference to an instance of the IFlashMessage interface. Ask for it to be injected in your controller:
public HomeController(IFlashMessage flashMessage)
Queuing a confirmation message for display on the next request after for example user login is done as follows, assuming that _flashMessage is a property of type IFlashMessage:
// User successfully logged in
_flashMessage.Confirmation($"You have been logged in as: {user.Name}");
return RedirectToLocal(returnUrl);
Different types of messages can be queued using different methods on the IFlashMessage interface:
FlashMessage.Info("Your informational message");
FlashMessage.Confirmation("Your confirmation message");
FlashMessage.Warning("Your warning message");
FlashMessage.Danger("Your danger alert");
FlashMessage.Danger("Message title", "Your danger alert");
ASP.NET Core 1
Install the FlashMessage NuGet package and import the Vereyon.Web namespace where you need it.
Install-Package Vereyon.Web.FlashMessage
Registering required services for depencency injection
Register the required services during startup of you application:
// Add services required for flash message to work.
services.AddFlashMessage();
Rendering flash messages
Typically you want to render all queued flash messages in your Layout Razor template using the following code:
@Vereyon.Web.FlashMessageHtmlHelper.RenderFlashMessages(Html)
Optionally you can disable the dismiss icon passing dismissable: false:
@Vereyon.Web.FlashMessageHtmlHelper.RenderFlashMessages(Html, false)
Queuing flash messages
In order to be able to queue flash messages you'll need a reference to the IFlashMessage interface. Ask for it to be injected in your controller:
public HomeController(IFlashMessage flashMessage)
Queuing a confirmation message for display on the next request after for example user login is done as follows, assuming that FlashMessage is a property of type IFlashMessage:
// User successfully logged in
FlashMessage.Confirmation("You have been logged in as: {0}", user.Name);
return RedirectToLocal(returnUrl);
Different types of messages can be scheduled using different methods on the IFlashMessage interface:
FlashMessage.Info("Your informational message");
FlashMessage.Confirmation("Your confirmation message");
FlashMessage.Warning("Your warning message");
FlashMessage.Danger("Your danger alert");
FlashMessage.Danger("Message title", "Your danger alert");
ASP.NET 5 and earlier
Install the FlashMessage NuGet package and import the Vereyon.Web namespace where you need it.
Rendering flash messages
Typically you want to render all queued flash messages in your Layout Razor template using the following code:
@Html.RenderFlashMessages()
Queuing flash messages
Queuing a confirmation message for display on the next request after for example user login is done as follows:
// User successfully logged in
FlashMessage.Confirmation("You have been logged in as: {0}", user.Name);
return RedirectToLocal(returnUrl);
Different types of messages can be scheduled using different static methods on the FlashMessage object:
FlashMessage.Info("Your informational message");
FlashMessage.Confirmation("Your confirmation message");
FlashMessage.Warning("Your warning message");
FlashMessage.Danger("Your danger alert");
FlashMessage.Danger("Message title", "Your danger alert");
Advanced options
Using the FlashMessage.Queue() method advanced options are available:
FlashMessage.Queue(string.Format("You have been logged in as: {0}", user.Name), "Title", FlashMessageType.Confirmation, false);
The FlashMessage class allows you to queue messages anywhere in your code where a HttpContext is available and the response has not yet been sent out. You can thus also use FlashMessage outside your MVC actions or with WebForms applications.
Tests
Got tests? Yes, see the tests project. It uses xUnit.