/// <summary>
        /// Called when a request matches this controller, but no method with the specified action name is found in the controller.
        /// </summary>
        /// <param name="actionName">The name of the attempted action.</param>
        protected override void HandleUnknownAction(string actionName)
        {
            if (!string.IsNullOrWhiteSpace(actionName))
            {
                // We have to set the correct HttpStatus code if the
                // unknown action is one of our golden 7 actions.
                if (KnownActionNames.All().Contains(actionName, StringComparer.OrdinalIgnoreCase))
                {
                    // if we know the action, the obvious reason it does not match due to
                    // the incorrect http method, so lets set the correct http status code
                    // to notify the client.
                    HttpContext.Response.StatusCode = (int)HttpStatusCode.MethodNotAllowed;
                    return;
                }
            }

            base.HandleUnknownAction(actionName);
        }