你的位置:首页 > ASP.net教程

[ASP.net教程]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;    }