/// <summary>
        ///     Invoke the action on the domain object with the parameters in the form. Return result and update valid bool to indicate if
        ///     parameters valid.
        /// </summary>
        protected T InvokeAction <T>(object domainObject, string actionName, FormCollection parameters, out bool valid)
        {
            INakedObject nakedObject = NakedObjectsContext.GetNakedObject(domainObject);
            IActionSpec  action      = nakedObject.GetActionLeafNode(actionName);

            return(InvokeAction <T>(nakedObject, action, parameters, out valid));
        }