Rails の flash みたいに ASP.NET MVC の TempData を使ってみた

Railsflash と同じことが ASP.NET MVC でもやりたくて、 ミドルウェア自作するしかないかなぁって思っていたんだけど、 TempData で同じことができそうだった。

ただ、TempData を素で使うとキーを typo しそうなので、次のように拡張メソッド使っている。

/// <summary>
/// TempData の拡張機能を提供します。
/// </summary>
public static class TempDataExtensions
{
    /// <summary>
    /// 通知メッセージを設定します。
    /// </summary>
    /// <param name="tempData">一時データ</param>
    /// <param name="message">通知メッセージ</param>
    public static void Notice(this TempDataDictionary tempData, string message)
    {
        tempData["notice"] = message;
    }

    /// <summary>
    /// 通知メッセージを取得します。
    /// </summary>
    /// <param name="tempData">一時データ</param>
    /// <returns>通知メッセージ</returns>
    public static string Notice(this TempDataDictionary tempData)
    {
        return tempData["notice"] as string;
    }

    /// <summary>
    /// アラートメッセージを設定します。
    /// </summary>
    /// <param name="tempData">一時データ</param>
    /// <param name="message">アラートメッセージ</param>
    public static void Alert(this TempDataDictionary tempData, string message)
    {
        tempData["alert"] = message;
    }

    /// <summary>
    /// アラートメッセージを取得します。
    /// </summary>
    /// <param name="tempData">一時データ</param>
    /// <returns>アラートメッセージ</returns>
    public static string Alert(this TempDataDictionary tempData)
    {
        return tempData["alert"] as string;
    }
}