我需要在asp核心中使用web api返回动作和控制器信息。
我有这个控制器:
[BreadCrumb(Order = 0)]
[DisplayName("سطح دسترسی پویا")]
[Route("api/[controller]")]
public class ValuesController : Controller
{
// GET api/values
[DisplayName("برگشت اطلاعات")]
[BreadCrumb(Order = 1)]
[HttpGet]
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
}
现在我需要返回DisplayName
和所有信息。我怎么能这样做?
答案 0 :(得分:0)
您可以使用以下代码:
var controllerInfo = ControllerContext.ActionDescriptor.ControllerTypeInfo.CustomAttributes;
var methodInfo = ControllerContext.ActionDescriptor.MethodInfo.CustomAttributes;
答案 1 :(得分:0)
你可以尝试:
[DisplayName("Controller Display Name")]
[Route("api/[controller]")]
public class ValuesController : Controller
{
// GET api/values
[HttpGet]
[DisplayName("Action Display Name")]
public IEnumerable<string> Get()
{
var ControllerDisplayName = string.Empty;
var ActionsDisplayName = string.Empty;
var ControllerAttributes = ControllerContext.ActionDescriptor.ControllerTypeInfo.GetCustomAttributes(typeof(DisplayNameAttribute), true);
if (ControllerAttributes.Length > 0)
{
ControllerDisplayName = ((DisplayNameAttribute)ControllerAttributes[0]).DisplayName;
}
var ActionAttributes = (ControllerContext.ActionDescriptor.MethodInfo.GetCustomAttributes(typeof(DisplayNameAttribute), false));
if (ActionAttributes.Length > 0)
{
ActionsDisplayName = ((DisplayNameAttribute)ActionAttributes[0]).DisplayName;
}
return new string[] { ControllerDisplayName, ActionsDisplayName };
}
}