Пример #1
0
        /// <summary>
        /// 获取MVC操作的相关功能信息
        /// </summary>
        public static IFunction GetExecuteFunction(this ControllerContext context, IServiceProvider provider)
        {
            const string key   = Constants.CurrentMvcFunctionKey;
            IDictionary  items = context.HttpContext.Items;

            if (items.Contains(key))
            {
                return((IFunction)items[key]);
            }
            string           area            = context.GetAreaName();
            string           controller      = context.GetControllerName();
            string           action          = context.GetActionName();
            IFunctionHandler functionHandler = provider.GetService <IFunctionHandler>();

            if (functionHandler == null)
            {
                return(null);
            }
            IFunction function = functionHandler.GetFunction(area, controller, action);

            if (function != null)
            {
                items.Add(key, function);
            }
            return(function);
        }
        public MvcOperationContext(ControllerContext context, string subject)
        {
            ControllerType = context.Controller?.GetType().ToString();
            Controller     = context.GetControllerName();
            Action         = context.GetActionName();
            Subject        = subject;
            var request = context.HttpContext.Request;

            IsChildAction = context.IsChildAction;
            Method        = request.HttpMethod;
            RawUrl        = request.RawUrl;
        }
Пример #3
0
        /// <summary>
        /// 获取MVC操作的相关功能信息
        /// </summary>
        public static IFunction GetExecuteFunction(this ControllerContext context)
        {
            const string key   = Constants.CurrentFunctionKey;
            IDictionary  items = context.HttpContext.Items;

            if (items.Contains(key))
            {
                return((IFunction)items[key]);
            }
            string    area       = context.GetAreaName();
            string    controller = context.GetControllerName();
            string    action     = context.GetActionName();
            IFunction function   = OSharpContext.Current.FunctionHandler.GetFunction(area, controller, action);

            if (function != null)
            {
                items.Add(key, function);
            }
            return(function);
        }