从 https://www.cnblogs.com/liuxiaoji/p/6860104.html 炒的,这里记到自己博客,以做记录,以后炒也要炒自己博客上的代码,ASP.NET CORE中使用SESSION的步骤如下 :
1. NUGET包引用 Microsoft.AspNetCore.Session (注:我在mac下用vs for mac做的时候,NUGET根本搜索不了,都需要FQ的,自己搜索了下,加入博客园的NUGET源就可以了,而且也很快:https://nuget.cnblogs.com/v3/index.json)
2. Startup.cs中的相应方法加入些代码:
public void ConfigureServices(IServiceCollection services)
{
//添加session
services.AddDistributedMemoryCache();
services.AddSession();
services.AddMvc();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
}
app.UseStaticFiles();
app.UseSession(); //加上这句才能用session
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
3. 以下是控制器中使用SESSION的代码,记得要先引用那个命名空间:
using System;using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using candel.Models;
using Microsoft.AspNetCore.Http; //记得要引用 这个
namespace candel.Controllers
{
public class HomeController : Controller
{
public IActionResult Index()
{
ViewBag.msg = "你好,牛腩,哈哈哈!!!";
HttpContext.Session.SetString("username", "niunan"); //设置SESSION
return View();
}
public IActionResult About(){
string username = HttpContext.Session.GetString("username"); //获取SESSION
ViewBag.username = username;
return View();
}
}
}