您必須反映控制器類型本身,使用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
爲什麼你剛纔設置一個標題?並在視圖中調用標題 – Jorge