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方法中获取控制器和动作名称