- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
在 MVC 5 I 中,您可以使用 HttpContext.Current
访问 HttpContext
。访问 HttpContext
或更好的方法是什么,只有当前的 RouteContext
?
最佳答案
RouteContext
不是您通常想要访问的对象。 MVC 使用它来发出路由是否已处理的信号,因此不会流动。您可能想要访问 RouteData
。
这里有几种访问方式:
在 Controller 上,您可以访问 - this.ActionContext.RouteData
或 HttpContext.Current
等效 this.ActionContext.HttpContext
或直接访问this.HttpContext
在 ActionFilter
中,您可以通过方法参数访问它们:
public void OnActionExecuting(ActionExecutingContext context)
{
var routeData = context.RouteData;
var httpContext = context.HttpContext;
...
}
您可以访问 DI 系统的任何其他地方(比如服务的构造函数,或者当您可以直接访问服务提供者时)您可以获取当前请求的 ActionContext
但请注意,这仅当您在请求范围内并且您传入的服务提供商在请求范围内时才有效。
public MyService(IScopedInstance<ActionContext> contextAccessor)
{
_httpContext = contextAccessor.Value.HttpContext;
_routeData = contextAccessor.Value.RouteData;
}
注意:您也可以编写自己的“访问器”,如果您希望它只是一个具有 get/set 属性的简单类,并注册为 Scoped 服务。
关于c# - 访问当前的 RouteContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25589823/
在 MVC 5 I 中,您可以使用 HttpContext.Current 访问 HttpContext。访问 HttpContext 或更好的方法是什么,只有当前的 RouteContext? 最佳
我有属性文件,我想通过这个文件在我的路由中设置 uri:
我是一名优秀的程序员,十分优秀!