Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# asp.net mvc控制器中的System.Web.HttpContext.Current.get返回空值_C#_Asp.net_Asp.net Mvc_Session_Asp.net Core Mvc - Fatal编程技术网

C# asp.net mvc控制器中的System.Web.HttpContext.Current.get返回空值

C# asp.net mvc控制器中的System.Web.HttpContext.Current.get返回空值,c#,asp.net,asp.net-mvc,session,asp.net-core-mvc,C#,Asp.net,Asp.net Mvc,Session,Asp.net Core Mvc,我想在MVC控制器的操作中使用会话,但是我遇到了这个错误,但我不确定为什么会出现这个错误 System.NullReferenceException: 'Object reference not set to an instance of an object.' System.Web.HttpContext.Current.get returned null. 控制器: using System; using System.Collections.Generic; using System.L

我想在MVC控制器的操作中使用会话,但是我遇到了这个错误,但我不确定为什么会出现这个错误

System.NullReferenceException: 'Object reference not set to an instance of an object.'
System.Web.HttpContext.Current.get returned null.
控制器:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using fyp.Models;
using System.Security.Claims;
using System.Data;
using System.Web;
using Microsoft.EntityFrameworkCore;
using Newtonsoft.Json;


namespace fyp.Controllers
{
    public class CustomerController : Controller
    {
        //Omitted actions

        [HttpGet]
        public IActionResult StartOrderMenu()
        {
            ViewData["Layout"] = "_Layout";
            List<Cart> carts = new List<Cart>();
            var jsoncart = JsonConvert.SerializeObject(carts);
            System.Web.HttpContext.Current.Session["cart"] = jsoncart;
            DbSet<Food> dbs = _dbContext.Food;
            List<Food> model = dbs.ToList();
            return View(model);
        }
    }
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用System.Threading.Tasks;
使用Microsoft.AspNetCore.Mvc;
使用fyp模型;
使用System.Security.Claims;
使用系统数据;
使用System.Web;
使用Microsoft.EntityFrameworkCore;
使用Newtonsoft.Json;
名称空间fyp.Controllers
{
公共类CustomerController:控制器
{
//省略动作
[HttpGet]
公共IActionResult StartOrderMenu()
{
ViewData[“布局”]=“_布局”;
列表推车=新列表();
var jsoncart=JsonConvert.serialized对象(carts);
System.Web.HttpContext.Current.Session[“cart”]=jsoncart;
DbSet dbs=_dbContext.Food;
列表模型=dbs.ToList();
返回视图(模型);
}
}
}

ASP.NET核心MVC中未使用
System.Web
命名空间,因此
System.Web.HttpContext.Current
属性将始终返回空值(请注意,
HttpContext
被注入)。如果要在
IActionResult
控制器中设置会话变量,可以使用以下方法:

如果要检索它,请使用以下方法:

注意:要获得
HttpContext
实例工作,请使用Microsoft.AspNetCore.Http放置


进一步参考:

只需分配
Session[“cart”]=jsoncart将工作,因为它来自
控制器
类。
System.Web.HttpContext.Current
实例在您使用时可能没有上下文。如果我使用
会话[“cart”]=jsoncart,则@tetsuyayayamamoto可能重复我将获得
当前上下文中不存在名称“Session”
抱歉,我忘了您正在使用核心MVC。会话的用法略有不同,因为
System.Web
命名空间不存在(请参阅):
HttpContext.Session.SetString(“cart”,jsoncart)
string key = "cart";

HttpContext.Session.SetString(key, jsoncart);
string jsonCart = HttpContext.Session.GetString("cart");