zoukankan      html  css  js  c++  java
  • Asp.net MVC中如何获取控制器的名称

    1、视图中

        string controller = ViewContext.RouteData.Route.GetRouteData(this.Context).Values["controller"].ToString();
    
        string controller = ViewContext.RouteData.Values["controller"].ToString();

    2、控制器的action中

        string controller = RouteData.Route.GetRouteData(this.HttpContext).Values["controller"].ToString(); 
    
        string controller = RouteData.Values["controller"].ToString(); 

    3、过滤器中

      比如在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 = controller + "Controller"; }

     4、公共方法中

         /// <summary>
            /// 获取当前页面的Controller全名称
            /// </summary>
            /// <returns></returns>
            public string GetCurrentController()
            {
                string controller = HttpContext.Current.Request.RequestContext.RouteData.Values["controller"].ToString();
                if (!string.IsNullOrWhiteSpace(controller))
                {
                    controller = controller + "Controller";
                }
                else
                {
                    controller = "";
                }
                return controller;
            }
  • 相关阅读:
    记一次手工端假设之旅
    宝塔面板相关笔记
    linux ubuntu centos 相关笔记
    问题解决笔记,Restarting network (via systemctl):: Job for network.service failed. ...
    Ubuntu中使用yum
    小说爬取 python + urllib + lxml
    wsgiref错误解决笔记 "write() argument must be a bytes instance"
    个人作品导航:
    django基础一
    前端小知识(5)--响应式页面实现
  • 原文地址:https://www.cnblogs.com/goodborder/p/5956287.html
Copyright © 2011-2022 走看看