如何从 ASP.NET mvc 中的控制器访问 HttpContext

How to access HttpContext from controller in ASP.NET mvc

在 asp.net 中,如何获取我所在页面的当前 httpcontext?

我曾尝试将 httpcontext 作为参数提供给相关控制器,但这不起作用。我发现很多人描述了如何指定对象,但我根本找不到任何关于如何将 httpcontext 添加到控制器的信息(比如,在参数中)

这行不通

    public class MovieController : Controller
    {
            public ActionResult Random(HttpContext mycontext)
        {

            RandomMovieViewmodel rmvm = new RandomMovieViewmodel();


            return View(rmvm);
        }

我如何访问上下文?我应该做一个属性吗?

控制器定义在这里非常重要。

例如,在具有派生自 ControllerBase 的控制器的 .Net Core 2.2 中,HttpContext 公开为 属性。

我不确定您的环境或您的 class 定义,但它在 Asp.Net MVC 中总是相似的。请确保您正确定义了控制器 class。

更新

当您从 Controller class 派生时,HttpContext 公开为 属性。可以直接使用。

public class TestController : Controller
{
    public ActionResult Index()
    {
        var context = HttpContext;

        return View();
    }
}