Misbit
Misbit

Reputation: 347

Run code every time a page loads

So I've come to understand that MVC doesn't really have a forms PageLoadevent equivalency so where do I put a code that I would like to execute every time a page loads? I'd like to check for a cookie.

Upvotes: 1

Views: 1629

Answers (2)

Lee Englestone
Lee Englestone

Reputation: 4667

I think this might fire for every action on the page if there are multiple actions on the page (for example partial views).

If you only want it to fire once you many need to check for

filterContext.IsChildAction

Like this

        protected override void OnActionExecuting(ActionExecutingContext filterContext) {
            if (filterContext.IsChildAction) return;

            // check for cookies!
        }

Mentioned here

In ASP.NET MVC 3, what is filterContext.IsChildAction?

Upvotes: 0

Anemoia
Anemoia

Reputation: 8116

Put it in the Constructor of the MVC Controller.

Or like this:

protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
    base.OnActionExecuting(filterContext);
    // check for cookies!
}   

Upvotes: 2

Related Questions