[英]System.Web.HttpContext.Current.get returned null in asp.net mvc controller
I want to use Session in an action of my MVC controller but I encountered this error but I'm not sure why the error is coming out. 我想在我的MVC控制器的操作中使用Session,但是遇到此错误,但是我不确定为什么会出现此错误。
System.NullReferenceException: 'Object reference not set to an instance of an object.'
System.Web.HttpContext.Current.get returned null.
Controller: 控制器:
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);
}
}
}
The System.Web
namespace is not used in ASP.NET Core MVC, hence System.Web.HttpContext.Current
property will always return null value (note that HttpContext
is injected). ASP.NET Core MVC中未使用
System.Web
命名空间,因此System.Web.HttpContext.Current
属性将始终返回null值(请注意,已注入HttpContext
)。 If you want to set session variable in IActionResult
controller, you can use SessionExtensions.SetString
method: 如果要在
IActionResult
控制器中设置会话变量, IActionResult
可以使用SessionExtensions.SetString
方法:
string key = "cart";
HttpContext.Session.SetString(key, jsoncart);
If you want to retrieve it, use SessionExtensions.GetString
method: 如果要检索它,请使用
SessionExtensions.GetString
方法:
string jsonCart = HttpContext.Session.GetString("cart");
Note: To get HttpContext
instance work, put using Microsoft.AspNetCore.Http;
注意:要获得
HttpContext
实例的工作,请using Microsoft.AspNetCore.Http;
before namespace declaration. 在命名空间声明之前。
Further reference: Session and app state in ASP.NET Core 进一步参考: ASP.NET Core中的会话和应用程序状态
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.