gpt4 book ai didi

asp.net-mvc - mvc3,你能给 Controller 一个显示名称吗?

转载 作者:行者123 更新时间:2023-12-01 11:41:56 25 4
gpt4 key购买 nike

我正在使用 mvc3。是否可以给 Controller 和 Action 一个显示名称。

[DisplayName("Facebook Employee")]
public class EmployeeController : Controller

在我的面包屑中,我将获得 Controller 名称和操作名称

@{
var controllerName = ViewContext.RouteData.Values["Controller"];
var actionName = ViewContext.RouteData.Values["Action"];
}

我希望看到“Facebook 员工”,但它不起作用。

最佳答案

您必须反射(reflection) Controller 类型本身,使用 GetCustomAttributes .使用 ViewContext.Controller 获取对 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

编辑

要对一个 Action 做类似的事情,你需要先反射(reflection)方法,使用Type.GetMethodInfo:

string actionName = ViewContext.RouteData.Values["Action"]
MethodInfo method = type.GetMethod(actionName);
var atts = method.GetCustomAttributes(typeof(DisplayNameAttribute), false);
// etc, same as above

关于asp.net-mvc - mvc3,你能给 Controller 一个显示名称吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19412483/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com