csharp 获取控制器中的所有动作和描述

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了csharp 获取控制器中的所有动作和描述相关的知识,希望对你有一定的参考价值。

           
           // 获取controller中的所有action和description
           Assembly asm = Assembly.GetAssembly(typeof(NjModelmgr.MvcApplication));
            var controlleractionlist = asm.GetTypes()
                    .Where(type => typeof(System.Web.Mvc.Controller).IsAssignableFrom(type))
                    .SelectMany(type => type.GetMethods(BindingFlags.Instance | BindingFlags.DeclaredOnly | BindingFlags.Public))
                    .Where(m => !m.GetCustomAttributes(typeof(System.Runtime.CompilerServices.CompilerGeneratedAttribute), true).Any())
                    .Select(x => new
                    {
                        Controller = x.DeclaringType.Name,
                        Action = x.Name,
                        Attributes = String.Join(",", x.GetCustomAttributes().Select(a => a.GetType().Name.Replace("Attribute", ""))),
                        Description = ((DescriptionAttribute)x.GetCustomAttribute(typeof(DescriptionAttribute))) == null ? "" : ((DescriptionAttribute)x.GetCustomAttribute(typeof(DescriptionAttribute))).Description
                    })
                    .OrderBy(x => x.Controller).ThenBy(x => x.Action).ToList();
            var jsonData = JsonConvert.SerializeObject(controlleractionlist);
            return Content(jsonData);

以上是关于csharp 获取控制器中的所有动作和描述的主要内容,如果未能解决你的问题,请参考以下文章

ruby on rails 中的控制器和动作有啥区别?

如何从子动作内部获取当前控制器和动作?

MVC如何从视图调用控制器中的动作以返回值

从扩展中获取当前控制器动作和 slug

csharp 获取区域,控制器和操作名称

使用Route属性在Controller方法中获取控制器和动作名称