三種視圖傳遞數據的方式: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");