三种视图传递数据的方式:tempdata,session,cache,都是键值对的形式,其中tempdata是一次性的,用过一次就失效了。
tempdata的用法:
支持跨视图访问,赋值语句tempdata["name"]="张三";使用的时候tempdata["name"]就可以。
session的用法:
先要引入几个命名空间:using Microsoft.AspNetCore.Http;,using Microsoft.AspNetCore.Mvc;,using Microsoft.Extensions.Caching.Memory;用视图来获取viewbag里的数据,另外要在startup.cs的ConfigureServices方法里加入 services.AddSession();,在Configure的方法里加入 app.UseSession();
//用sessinon来设定数据
ISession sess = HttpContext.Session;
sess.SetInt32("age", 99);
sess.SetString("name", "jery张");
//也可以直接设定session数据
HttpContext.Session.SetString("mm", "李四");
//用sessinon的方式获取数据
ISession sess = HttpContext.Session;
int? age = sess.GetInt32("age");//有可能为空
string name = sess.GetString("name");
ViewBag.age = age;
ViewBag.name = name;
ViewBag.name2 = HttpContext.Session.GetString("mm");
cache的用法:
//用注入的方法来设定cache
_cache.Set("age3", 10);
_cache.Set("name3", "小明");
//获取cache数据
ViewBag.age3 = _cache.Get<int>("age3");
ViewBag.name3 = _cache.Get<string>("name3");