Asp.Net Core MVC TempData Helper Class

ebeeraheem

View Profile
69 views
Dec 07, 2025
Updated Dec 07, 2025

public class MessageHelper(
ITempDataDictionaryFactory tempDataFactory,
IHttpContextAccessor httpContextAccessor,
ILogger<MessageHelper> logger)
{
    private readonly ITempDataDictionaryFactory _tempDataFactory = tempDataFactory;
    private readonly IHttpContextAccessor _httpContextAccessor = httpContextAccessor;

    /// <summary>
    /// Sets success message for display
    /// </summary>
    public void SetSuccessMessage(string message)
    {
        SetMessage("SuccessMessage", message);
    }

    /// <summary>
    /// Sets error message for display
    /// </summary>
    public void SetErrorMessage(string message)
    {
        SetMessage("ErrorMessage", message);
    }

    /// <summary>
    /// Sets info message for display
    /// </summary>
    public void SetInfoMessage(string message)
    {
        SetMessage("InfoMessage", message);
    }

    private void SetMessage(string key, string message)
    {
        if (string.IsNullOrWhiteSpace(message))
            return;

        var httpContext = _httpContextAccessor.HttpContext;
        if (httpContext is null)
        {
            logger.LogWarning("HttpContext is null. Cannot set message with key '{Key}'", key);
            return;
        }

        var tempData = _tempDataFactory.GetTempData(httpContext);
        tempData[key] = message;
    }
}