を使用して、コントローラーの型自体を検討する必要がありますGetCustomAttributes
。ViewContext.Controller
コントローラー自体への参照を取得するために使用します。このようなもの:
string controllerName;
Type type = ViewContext.Controller.GetType();
var atts = type.GetCustomAttributes(typeof(DisplayNameAttribute), false);
if (atts.Length > 0)
controllerName = ((DisplayNameAttribute)atts[0]).DisplayName;
else
controllerName = type.Name; // fallback to the type name of the controller
編集
アクションに対して同様のことを行うには、最初に次を使用してメソッドを反映する必要がありますType.GetMethodInfo
。
string actionName = ViewContext.RouteData.Values["Action"]
MethodInfo method = type.GetMethod(actionName);
var atts = method.GetCustomAttributes(typeof(DisplayNameAttribute), false);
// etc, same as above