ASP .NET Coreのセッションに文字列を入れる

提供: MonoBook
移動先: 案内検索

ASP .NET CoreのSessionクラスは標準でbyte[]を引数にとるSetメソッドしかない。

HttpContext.Session.Set(string key, byte[] value)

ウェブといえば文字列PerlRubyPHPなどの文字列処理が手軽なプログラミング言語が勝ち続けてきた世界であり、 ASP .NET Coreセッションにも文字列を簡単に突っ込みたいわけだ。 ググったらMicrosoft.AspNetCore.Http名前空間に「Session.SetString拡張メソッド」というズバリなものがいるらしい。Microsoft.AspNetCore.Session名前空間でないのかよ。わかりにくいな。

 HttpContext.Session.SetString(string key, string value)
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Threading.Tasks;
    using Microsoft.AspNetCore.Mvc;
    using Microsoft.AspNetCore.Http;

    public class HomeController : Controller
    {
        public IActionResult Index()
        {
            // Session.SetString拡張メソッドは「Microsoft.AspNetCore.Http」にいる。
            HttpContext.Session.SetString("name", "monobook");
            return View();
        }
    }