获取控制器索引 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
如何获取控制器索引的 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