asp.net core ActionFilter 中获取 当前请求controller和action

public void OnActionExecuting( ActionExecutingContext context)
        {
 
            var V = context.HttpContext.Request.RouteValues;

            string ControllerName =(string) V["Controller"];
            string ActionName = (string)V["Action"] ;

      }

如: 当前的actionfilter名称为 LoginFilter   如果在

  

public class HomeController:Controller{

    [LoginFilter  ]

  public IActionResult  Index()

{


}

}

 

V["Controller"]值为  Home ,(string)V["Action"] 值为  Index


获取全路径 代码如下: 调用 context。HttpContext.Request.GetAbsoluteUri() 返回完整路径 http://localhost:8080/Home/Index
public static class HttpRequestExtensions
    {
        public static string GetAbsoluteUri(this HttpRequest request)
        {
            return new StringBuilder()
             .Append(request.Scheme)
             .Append("://")
             .Append(request.Host)
             .Append(request.PathBase)
             .Append(request.Path)
             .Append(request.QueryString)
             .ToString();
        }
    }

 

 

posted on 2022-08-12 15:48  码农at突泉  阅读(159)  评论(0)    收藏  举报