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

s3j*_*j80 4 c# asp.net asp.net-mvc sitecore

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

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

这不起作用

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

            RandomMovieViewmodel rmvm = new RandomMovieViewmodel();


            return View(rmvm);
        }
Run Code Online (Sandbox Code Playgroud)

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

Ser*_*dar 5

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

例如,在具有从 ControllerBase 派生的 Controller 的 .Net Core 2.2 中,HttpContext 作为属性公开。

我不确定你的环境或你的类定义,但它在 Asp.Net MVC 中总是相似的。只要确保您正确定义了控制器类即可。

更新

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

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

        return View();
    }
}
Run Code Online (Sandbox Code Playgroud)