获取控制器索引 Viewbag 标题

Get Controllers index Viewbag title

如何获取控制器索引的 Viewbag 标题?

例如,如果我在 mysite.com/MyController/MyAction,我想从控制器索引中呈现 Viewbag 标题,即 mysite.com/MyController

索引的 Viewbag 标题为 "My Controller"。

我试图获取控制器名称并将其呈现为字符串,尽管这并不理想。我使用以下方法做到了这一点:

@HttpContext.Current.Request.RequestContext.RouteData.Values["controller"].ToString())

我认为您指的是在剃须刀 view/C# 代码块中填充的 Viewbag.title。 Viewbag.title 或 viewbag.ANYTHING 在控制器方法中编码或在视图 .cshtml 中设置,路由或任何其他 MVC 页面处理不会在 ViewBag 中设置任何值。

您可以像这样获取路线值:

RouteData route = RouteTable.Routes.GetRouteData(httpContext);
UrlHelper urlHelper = new UrlHelper(new RequestContext(httpContext, route));
var routeValueDictionary = urlHelper.RequestContext.RouteData.Values;

这个 SO 答案也很有帮助: ASP.NET MVC C# Get controller and action name in class