获取控制器索引Viewbag标题

时间:2015-02-18 01:31:45

标签: c# asp.net-mvc razor asp.net-mvc-5

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

例如,如果我在mysite.com/MyController/MyAction,我想从控制器索引渲染Viewbag标题,为mysite.com/MyController

索引的Viewbag标题是“我的控制器”。

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

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

1 个答案:

答案 0 :(得分:1)

我认为你指的是在razor 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