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();