Search code examples
c#asp.net-mvcviewdata

Access viewcontext from httpcontext


I want to get ViewData value from httpcontext. My function:

[LogActionFilter]
public ActionResult Edit(int id = 0)
{
    var obj = getObjFromDb(id);
    ViewData["abc"] = obj.name;
    return View(obj);
}

My action filter where I want to to access ViewData value:

public class LogActionFilter : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        var a= filterContext.HttpContext.Items["abc"]; //null
        var b = filterContext.HttpContext.Request.RequestContext.HttpContext.Items["abc"]; //null
    }

    public override void OnActionExecuted(ActionExecutedContext filterContext)
    {
        var a= filterContext.HttpContext.Items["abc"]; //null
        var b = filterContext.HttpContext.Request.RequestContext.HttpContext.Items["abc"]; //null
    }
}

How can I access the value of ViewData from HttpContext?


Solution

  • Thanks to Stephen Muecke,

    ViewData is not available in HttpContext

    So I changed my logic, instead of getting viewdata value, I fetched data from database in action filter.