因為需要,讀取用戶cookie值后,作為全域變數給母版頁用,如頭像地址,但是發現放到建構式里,不生成,不管cookie有沒有內容,都說是null,而且還不被允許 ,出錯,不知什么原因,請高人指點
代碼如下:
public class BaseController : Controller
{
// GET: Base [Authorize]
public BaseController()
{
string ImageUrl = Common.Constants.ImageUrl;
string cookiename = Request.Cookies[".cookiename"];
if (cookiename != null && cookiename.Length > 0)
{
string AdminFace = User.FindFirst("FacePhoto").Value;
string AdminTrueName = User.Identity.Name;
ViewBag.AdminFace = ImageUrl + AdminFace;
ViewBag.AdminTrueName = AdminTrueName;
}
}
運行出錯:
System.NullReferenceException:“Object reference not set to an instance of an object.”
但是放到具體頁面時,卻能正常讀取
public IActionResult Index()
{
string ImageUrl = Common.Constants.ImageUrl;
string cookiename = Request.Cookies[".AspNetCore.JPTABCOOKIE"];
if (cookiename != null && cookiename.Length > 0)
{
string AdminFace = User.FindFirst("FacePhoto").Value;
string AdminTrueName = User.Identity.Name;
ViewBag.AdminFace = ImageUrl + AdminFace;
ViewBag.AdminTrueName = AdminTrueName;
}
return View();
}
uj5u.com熱心網友回復:
放在protected override void OnActionExecuting(ActionExecutingContext filterContext)
uj5u.com熱心網友回復:
建構式盡量不做運算,只做變數的初始化。可以試試新建一個靜態類,在類中創建靜態方法,需要用到的地方再去呼叫。uj5u.com熱心網友回復:
cookie一般是在頁面讀取的轉載請註明出處,本文鏈接:https://www.uj5u.com/net/234691.html
標籤:C#
上一篇:為什么在退出應用程式前,沒有列印
下一篇:谷歌瀏覽器訪問亂碼錯位
