C# 读取没有初始值分配的会话时,ASP.NET CORE 3.1 NULL异常错误
C# 读取没有初始值分配的会话时,ASP.NET CORE 3.1 NULL异常错误,c#,asp.net-mvc,asp.net-core,C#,Asp.net Mvc,Asp.net Core,HttpContext.Session.GetInt32(“Id”)引发空异常,因为当我的c#代码首先在我的layaut页面上运行时,会话不会发生 奥孔杜翁达圣卢姆·赫努兹·奥卢卢马姆·奥杜乌伊萨会议无效 fırlatıyor例外。他在一次会议上发言 胆汁布局sayfasında okurken空异常fırlatıyor layaout.cshtml页面 @page @using Microsoft.AspNetCore.Http @using System.Text @{ var c
HttpContext.Session.GetInt32
(“Id”)引发空异常,因为当我的c#代码首先在我的layaut页面上运行时,会话不会发生
奥孔杜翁达圣卢姆·赫努兹·奥卢卢马姆·奥杜乌伊萨会议无效
fırlatıyor例外。他在一次会议上发言
胆汁布局sayfasında okurken空异常fırlatıyor
layaout.cshtml页面
@page
@using Microsoft.AspNetCore.Http
@using System.Text
@{
var contentKAdi = "";
var contentAdSoyad = "";
var contentEmail = "";
var contentResimYol = "";
int contentId = 0;
try
{
***usr = HttpContext.Session.Get<User>("user");
contentId = (int)HttpContext.Session.GetInt32("Id");
contentKAdi = HttpContext.Session.GetString("KAdi");***
}
catch
{
contentKAdi = "";
contentAdSoyad = "";
contentEmail = "";
contentResimYol = "";
contentId = 0;
}
}
行动结果
if (HttpContext.Session.Get<User>("user") == default(User))
{
HttpContext.Session.Set<User>("user", UserSrgu);
var usr = HttpContext.Session.Get<User>("user");
}
HttpContext.Session.SetInt32("Id", UserSrgu.Id);
var id = HttpContext.Session.GetInt32("Id");
if(HttpContext.Session.Get(“用户”)==default(用户))
{
HttpContext.Session.Set(“用户”,UserSrgu);
var usr=HttpContext.Session.Get(“用户”);
}
HttpContext.Session.SetInt32(“Id”,UserSrgu.Id);
var id=HttpContext.Session.GetInt32(“id”);
。。。。。
UserSrgu.Id=1,UserSrgu->full,Id=null,usr=null
通过使用TempData传递数据,我通过了layout.cshtml页面。在
ConfigureServices
方法中,请确保已将checkapprovement
设置为false
services.Configure<CookiePolicyOptions>(options =>
{
options.CheckConsentNeeded = context => false;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
3-在Configure
方法的startup.cs中,您应该具有:
app.UseSession();
您是否已在startup.cs中设置了
HttpContext。会话在配置会话状态后可用。请将您的问题转换为英语。我是否可以使用HttpContext.Session.GetInt32(“Id”)读取空值,而不分配会话Id si.,?两者都可用mevcut@ErolAKTEPE我在你的密码上没看到,请再次检查以上三个要素。options.Cookie.IsEssential=true;中未解决的问题progress@ErolAKTEPE您可以分享SessionExtensions
class吗
if (HttpContext.Session.Get<User>("user") == default(User))
{
HttpContext.Session.Set<User>("user", UserSrgu);
var usr = HttpContext.Session.Get<User>("user");
}
HttpContext.Session.SetInt32("Id", UserSrgu.Id);
var id = HttpContext.Session.GetInt32("Id");
services.Configure<CookiePolicyOptions>(options =>
{
options.CheckConsentNeeded = context => false;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
public void ConfigureServices(IServiceCollection services)
{
services.AddDistributedMemoryCache();
services.AddSession(options =>
{
// Set a short timeout for easy testing.
options.IdleTimeout = TimeSpan.FromSeconds(10);
options.Cookie.HttpOnly = true;
// Make the session cookie essential
options.Cookie.IsEssential = true;
});
app.UseSession();