示例#1
0
        public static string MenuAction(this IUrlHelper url, UI.Menus.IMenuItem menu, IEnumerable <string> userRoles, object routeValues = null)
        {
            if (menu.Controller == null)
            {
                return(url.MenuAction(menu.Items.FirstOrDefault(x => userRoles == null || userRoles.Intersect(x.Roles).Count() == x.Roles.Count()), routeValues));
            }

            return(url.MenuAction(menu, routeValues));
        }
示例#2
0
        public static string MenuAction(this IUrlHelper url, UI.Menus.IMenuItem menu, object routeValues = null)
        {
            if (menu == null)
            {
                return("/error");
            }

            dynamic menuRouteValues = new ExpandoObject();

            if (menu.Area != null)
            {
                menuRouteValues.Area = menu.Area;
            }

            object values = Utils.Dynamics.Merge(menu.RouteValues, Utils.Dynamics.Merge(routeValues, menuRouteValues));

            return(url.Action(menu.Action, menu.Controller, values));
        }