控制器的 Action 中
RouteData.Values["controller"].ToString()
或
RouteData.Route.GetRouteData(HttpContext).Values["controller"].ToString()
视图中
ViewContext.RouteData.Values["controller"].ToString()
或
ViewContext.RouteData.Route.GetRouteData(Context).Values["controller"].ToString()
公共方法中
HttpContext.Current.Request.RequestContext.RouteData.Values["controller"].ToString()
过滤器中
以 ActionFilterAttribute 为例,实现一个继承类,重写相关方法,在重写的方法中获取控制器名称
/// <summary> /// 可用于检查用户是否已经登录(在 Action 之前执行) /// </summary> /// <param name="filterContext"></param> public override void OnActionExecuting(ActionExecutingContext filterContext) { base.OnActionExecuting(filterContext); string controller = filterContext.RouteData.Values["controller"].ToString(); }
将以上代码中的 "controller" 替换成 "action" 即可获取 Action 名称。
控制器的 Actione 中
RouteData.DataTokens["area"]?.ToString()
注意:应使用空传播运算符
RouteData.Values
vs-iis-express-ssl-port
roll-back-to-mysql-connector-net-8-0-19
The-view-was-not-found
FromSqlRaw
csharp-substring