首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

.net核心从HttpContext检索控制器名称和操作名称

.NET Core是一个跨平台的开源框架,用于构建现代化的云原生应用程序。它具有高性能、可扩展性和灵活性的特点,可以用于前端开发、后端开发、软件测试、数据库、服务器运维、网络通信、网络安全、音视频、多媒体处理、人工智能、物联网、移动开发、存储、区块链、元宇宙等各个领域。

在.NET Core中,可以通过HttpContext对象来检索控制器名称和操作名称。HttpContext是一个封装了HTTP请求和响应的上下文对象,它提供了访问HTTP请求和响应的各种属性和方法。

要从HttpContext检索控制器名称和操作名称,可以使用以下代码:

代码语言:txt
复制
using Microsoft.AspNetCore.Mvc;

public class MyController : Controller
{
    public IActionResult MyAction()
    {
        string controllerName = this.ControllerContext.RouteData.Values["controller"].ToString();
        string actionName = this.ControllerContext.RouteData.Values["action"].ToString();

        // 其他操作...

        return View();
    }
}

在上面的代码中,我们可以通过ControllerContext.RouteData.Values集合来获取控制器名称和操作名称。其中,"controller"和"action"是默认的路由参数名称,可以根据实际情况进行修改。

对于.NET Core的推荐产品和产品介绍链接地址,可以参考腾讯云的云服务,如云服务器、云数据库、云存储等。具体推荐的产品和链接地址可以根据实际需求和场景进行选择。

请注意,本回答仅供参考,具体的实现方式和推荐产品应根据实际情况进行选择和调整。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何使用Serilog.AspNetCore记录ASP.NET Core3.0的MVC属性

其他属性,例如MVC特定的功能,像操作方法ID,RazorPages处理程序名称或ModelValidationState,仅在MVC上下文中可用,因此Serilog的中间件不能直接访问。...ASP.NET Core团队一直在努力将更多MVC特定功能(例如模型绑定或操作结果)MVC中移除,然后“下推”到核心框架中。...Nicholas Blumhardt在他的帖子中建议的Action过滤器是ActionFilterAttribute派生的,因此可以将其直接用作控制器Action的特性。...不幸的是,这意味着您必须使用服务定位来每个请求的HttpContext检索单例的IDiagnosticContext。...以下示例PageHandlerSelectedContext中检索处理程序名称并将其记录为属性RazorPageHandler。

3.6K10

吐槽一下Abp的用户租户管理模块

背景 原创文《SP.NET Core 基于声明的访问控制到底是什么鬼?》 聊到基于声明的身份认证将 身份签发机构分离,应用程序信任签发机构,故认可签发的身份信息。...ToString()), new Claim("maxAge",_authData.Data["maxAge"].ToString()), }; // 设置身份卡片内容 、身份卡片核心...你会在ApplicationSerive、 AbpController看到属性CurrentUser, 在Abp服务控制器中是可以即时使用的。 --- --- 2....返回当前用户角色名称的字符串数组. ........new关键字显式隐藏基类继承的成员 这样我们既可以使用 Abp框架其他能力,利用new关键词我们也刻意隐藏了框架原有的ICurrentUser属性, 其他同事也不需要额外的认知成本就可以开心地像往常一样使用

1.4K10
  • Serilog高级玩法之用Serilog记录所选终结点附加属性

    在本文中,我将展示如何向Serilog的摘要请求日志中添加其他元数据,例如请求的主机名,响应的内容类型或ASP.NET Core 3.0中使用的终结点路由中间件所选择的端点名称。...例如,如文档所示,您可以操作方法中添加任意值: public class HomeController : Controller { readonly IDiagnosticContext _...下面的静态帮助器类当前HttpContext上下文检索值,并在值可用时对其进行设置。 下面的静态helper类当前HttpContext检索值,并在值可用时设置它们。...Request”,“Response”以及其他中间件(端点名称)设置的功能中检索值。...这样的做法非常简单-您可以访问HttpContext,因此你可以检索它包含的任何可用的值,并将它们设置为IDiagnosticContext所提供的属性。

    1.7K10

    多线程下的调用上下文 : CallContext

    否 GetData System.Runtime.Remoting.Messaging.CallContext中检索具有指定名称的对象 否 LogicalSetData 将给定的对象存储在逻辑调用上下文...是 LogicalGetData 逻辑调用上下文中检索具有指定名称的对象。 是 FreeNamedDataSlot 清空具有指定名称的数据槽。...在Web环境下等于System.Web.HttpContext.Current 2 探究CallContext方法 上面介绍了CallContext提供的核心方法,下面我们就来通过实践来理解一下。...这时,或许我们可以考虑另一个方案,在ASP.NET中的HttpContext中有一个Items属性,它也可以用来保存key-value,这就完美了,一次请求正好对应着一个HttpContext,请求结束...["dbContext"] = dbContext; } return dbContext; } } 其实,HttpContext这个类CallContext是有关联的,

    92420

    使用Metrics.NET 构建 ASP.NET MVC 应用程序的性能指标

    构建的ASP.NET MVC 应用程序的性能指标,如下表所示: 计数器名称 描述 Last Call Elapsed Time 已完成最后一次调用的所花费的时间。...然后应该跟踪此控制器操作性能。辅助方法用于创建一个 ActionInfo 对象,它是一个对象,封装有关控制器操作的所有信息。...然后创建 PerformanceTracker 对象,它是具有主要负责跟踪性能的控制器操作的对象。...度量性能的每个请求将相关联的 PerformanceTracker 对象关联的 PerformanceTracker 对象将需要再次检索在 OnActionExecuted() 方法中控制器动作完成后...对 HttpContext 项目字典是用于当数据需要在请求过程中不同的 Http 处理程序模块之间共享而设计的。使用的诀窍是基于属性类型的完整名称 ASP.NET 生成的唯一 id 的方法。

    96780

    Asp.Net WebApi核心对象解析(二)

    扯淡完毕,接着聊正事,上一篇写的是Asp.Net WebApi核心对象解析(上篇),本文是下篇,不管写的怎么样,还望大家多多指正。...控制器处理层:控制器操作是在这一层进行调用,参数再次绑定验证,HTTP响应消息也在这里创建。     对于托管层测说明,会在下面进行讲解。...消息处理程序是对一个操作的抽象,它接受HTTP请求消息并返回HTTP响应消息。连接消息处理程序管道控制器处理层的桥梁是控制器分发程序。...四.WebApi核心对象HttpClient:    上面介绍完服务器端的接收响应HTTP请求的操作方法,接下来介绍一个客户端生成HTTP请求,用与请求和获取服务器返回的消息,在新版本的.NET中,提供类...五.总结:    本文分为上下两篇,简单的介绍类一下Asp.Net WebApi的一些核心对象,并简单介绍了Asp.Net WebApi路由机制,处理架构,托管方式等等,如有不足错误之处还望多多指正。

    3.1K100

    ASP.Net请求处理机制初步探索之旅 - Part 5 ASP.Net MVC请求处理流程

    我们看到ASP.NET MVC从一个不完整的小孩长成一个日渐成熟的巨人,我们可以开源社区找到ASP.NET MVC的源码,相比之前我们需要Reflector进行反编译查看,这次则轻松得多。   ...二、MvcHandler.ProcessRequest开始 Part 3中我们知道了在请求处理管道中的第7个事件生成了MvcHandler,在第11第12个事件之间调用了MvcHandler的ProcessRequest...PS:有关ASP.NET MVC中HttpContext, HttpContextBase, HttpContextWrapper三者之间的联系请参考:http://blog.csdn.net/sundacheng1989...,然后取得ControllerFactory(控制器工厂)对象,通过ControllerFactory来创建指定名称控制器,最后将控制器作为out参数传递出去。   ...那么,这里又是进行了什么操作呢?

    1.1K30

    .net core 利用中间件处理常见的网站功能 包括 session、routers、重定向、重写和文件下载

    在.net core中所有的请求都会被请求中间件所处理,所以我们可以通过在中间件里边添加对应的功能然后在服务中添加注入来实现对应的功能 文件位置:Startup.cs=>Configure方法,请求中间件的代码位置...每个组件选择是否将请求传递给流水线中的下一个组件,并且可以在管道中调用下一个组件之前之后执行某些操作。请求代理用于构建请求管道。请求委托处理每个HTTP请求。 ?...: HttpContext.Session.SetString(Guid.NewGuid().ToString(),Guid.NewGuid().ToString()); 执行控制器就可以看到效果...重定向重写,这里实现一个简单的文件下载功能,符合我的路由规则,就下载对应的文件 1.要实现如上功能需要添加对 Microsoft.AspNetCore.Rewrite的引用添加 --nuget...so.FileProvider = new PhysicalFileProvider(Path.Combine(Directory.GetCurrentDirectory(), @"sf"));//这里的文件名称是真实的文件名称

    60820

    MVC 到使用 ASP.NET Core 6.0 的Minimal API

    在 ASP.NET Core MVC 应用程序中,控制器负责接受输入、执行或编排操作并返回响应。它是一个功能齐全的框架,通过过滤器、内置模型绑定验证、约定基于声明的行为等提供可扩展的管道。...模型绑定 模型绑定是 HTTP 请求中检索值并将它们转换为 .NET 类型的过程。由于我们在上面介绍了绑定路由值,本节将主要关注在请求正文中或通过查询字符串参数接收 JSON 数据。...MVC 在 MVC 中,您可以将 JSON 请求正文绑定到 .NET 类型,方法是将其作为参数传递给您的操作方法并使用[FromBody]属性对其进行修饰: [HttpPost("/payments"...MVC 在MVC中,获得您的控制器时,ControllerBase您可以访问HttpContext,HttpRequest,HttpResponse当前用户(ClaimsPrincipal基类属性...MVC 在 MVC 应用程序中,使用[Authorize]属性装饰您的控制器/或操作以指定您的授权要求。此属性允许您指定角色策略。

    7.6K10

    聊一聊Asp.net过滤器Filter那一些事

    最近在整理优化.net代码时,发现几个很不友好的处理现象:登录判断、权限认证、日志记录、异常处理等通用操作,在项目中的action中到处都是。在代码优化上,这一点是很重要着力点。...MVCAPI异同:   命名空间:MVC:System.Web.Http.Filters;API:System.Web.Mvc   注入方式:在注入方式上,主要包括:全局->控制器Controller...在这里面既能获取到未经处理的异常信息,也能获取到请求信息 // 在此可以根据实际项目需要做相应的逻辑处理 // 下面简单的列举了几个关键信息获取方式 // 控制器名称...string actionName = actionExecutedContext.ActionContext.ActionDescriptor.ActionName; // 控制器名称...} } 总结 .net过滤器,我个人的一句话理解就是:对action的各个阶段进行统一的监控处理等操作。.

    1.3K20

    在 ASP.NET MVC 中使用异步控制器

    AsyncController 派生的控制器使 ASP.NET 能够处理异步请求,并且这些控制器仍然可以为同步操作方法提供服务。 为操作创建两个方法。...请注意下面有关异步操作方法的一些事项: 如果操作名称为 Sample,则框架将查找 SampleAsync SampleCompleted 方法。...(操作名称为 Sample,而不是为SampleAsync。) 控制器不能包含名为 SampleAsync 的异步方法名为 Sample 的同步方法。...如果回调同步完成,则回调将在由 ASP.NET 控制的线程上执行并且将对操作进行序列化,因此不会出现并发问题。 已经由 ASP.NET 控制的线程中调用 Sync() 具有未定义的行为。...请参见 概念 ASP.NET MVC 应用程序中的控制器操作方法

    1.9K110

    ASP.NET MVC是如何运行的: URL路由

    目标ControllerAction的名称包含在HTTP请求中,而ASP.NET MVC的首要任务就是通过当前HTTP请求的解析得到正确的ControllerAction的名称。...对于每一个抵达的HTTP请求,ASP.NET MVC会遍历路由表找到一个URL模板的模式与请求地址相匹配的路有对象,并最终解析出以ControllerAction名称核心的路由数据。...表示ControllerAction名称的同名属性直接Values字典中提取,对应的Key分别为controlleraction。...顾名思义,RequestContext表示当前(HTTP)请求的上下文,其核心就是对当前HttpContextRouteData的封装,这可以通过如下的代码片断看出来。...三、UrlRoutingModule 路由表的目的在于对当前的HTTP请求进行解析从而获取一个以ControllerAction名称核心的路由数据,即上面介绍的RouteData,而整个解析工作是通过一个类型为

    1.8K60

    《ASP.NET Core 微服务实战》-- 读书笔记(第10章)

    平台,在这些平台上,支撑应用的操作系统应被视为临时存续的 有些企业的安全策略要求所有虚拟机在滚动更新期间需要销毁并重新构建,从而缩小持续攻击的可能范围 Cookie Forms 身份验证 当应用运行于...,让 ASP.NET Core 使用 Cookie 身份验证 OpenID Connect 身份验证 添加一个 account 控制器,提供的功能包括登录、注销、以及使用一个视图显示用户身份中的所有特征...Core Web 应用,建立了与第三方云友好的身份提供服务的连接 这让云应用能够利用 Bearer 令牌 OIDC 标准的优势,手工管理身份验证的负担中解放出来 OIDC 中间件云原生 我们已经讨论过在使用...、接收名称以及令牌的时效 在上面的代码中,我们禁用了颁发方接收方名称验证,其过程都是相当简单的字符串对比检查 开启验证时,颁发方接收方名称必须与令牌中包含的颁发方式接收方式名称严格匹配 要创建一个密钥...,它将枚举客户端发来的身份特征 [Authorize] [HttpGet] public string Get() { foreach (var claim in HttpContext.User.Claims

    1.8K10

    【ASP.NET Core 基础知识】--路由请求处理--路由概念(二)

    1.2 路由值参数 路由值参数是通过路由模板定义的占位符来捕获传递的参数。在ASP.NET Core中,路由值参数通常由花括号 {} 包围,它们URL中提取相应的值。...2.2 命名路由 命名路由是为特定路由规则分配一个唯一的名称,以便在应用程序中引用生成URL时使用。在ASP.NET Core中,可以通过在路由配置中使用name参数为路由指定名称。...然后,使用 MapAreaControllerRoute 方法定义了一个名为 areas 的区域路由,该区域的名称为 admin,并为该区域的控制器定义了相应的路由规则。...路由匹配: 路由中间件根据请求的URL路由规则,确定应该由哪个控制器动作方法处理。...,它使得应用程序能够根据传入的请求路由到正确的控制器动作方法,实现灵活的URL处理路由规则。

    12200

    ASP.NET MVC编程——单元测试

    2准备进行单元测试 创建单元测试项目并执行测试应该依据一定的准则,运用一些技巧或工具,下面列举了常用的技巧工具。 命名规则 测试类应以被测试的单元命名,测试方法的名称应能够描述待验证的行为。...var result = bc.GetBook(exceptedBk.Id); //断言部分 } 测试控制器操作的返回类型...Assert.AreEqual(exceptedBk, result.Model); //或 Assert.AreEqual(exceptedBk.Id,result.Model.Id); 测试重定向 控制器操作...测试驱动开发(TDD) 遵循“红灯-绿灯-重构”的原则:失败的情况开始测试,然后编写最少的代码让测试通过。为了能尽快地通过测试,编写的最少量的代码可能是未经过深思熟虑的,这种情况下就要重构。...Scott Allen,孙远帅/邹权译  ASP.NET MVC4 高级编程(第四版) 3.Dino Esposito著,潘丽臣译,ASP.NET MVC5编程实战 ------------------

    2.2K50

    【愚公系列】2023年02月 WMS智能仓储系统-010.全局过滤、中间件、格式化配置

    文章目录 前言 一、全局过滤 1.全局行为过滤的概念 2.全局行为过滤的注册方式 2.1 方法注册 2.2 控制器注册 2.3 全局注册 2.4 TypeFilter ServiceFilter...案例 二、中间件 1.跨域中间件 2.全局异常中间件 三、格式化配置 ---- 前言 本文主要讲解程序得全局配置,主要包含内容有 全局过滤 中间件 格式化配置 一、全局过滤 1.全局行为过滤的概念 .NET...):可以通过ActionFilter 拦截 每个执行的方法进行一系列的操作,比如:执行操作日志、参数验证,权限控制 等一系列操作。...} } 2.全局行为过滤的注册方式 2.1 方法注册 [AuthonizationFilter()] public IActionResult Index() { } 2.2 控制器注册...AddNewtonsoftJson services.AddControllers() .AddNewtonsoftJson(options => { //修改属性名称的序列化方式

    52460
    领券