从上下文中获取 Action/Controller 名称
Get Action/Controller name from context
我可以在 SignalR hub 中获取当前 Action/Controller 名称 就像在通常的 MVC 控制器中使用 [=12 一样吗? =]?
目前我正在使用:
if (HttpContext.Current != null)
return HttpContext.Current.Request.RawUrl;
但这只是 returns 类似于:
另外 HubCallerContext
似乎没有进一步的信息。
有人知道吗?
您可以尝试从 RouteData 对象中获取值
var controller = HttpContext.Request.RequestContext.RouteData.Values["controller"].ToString();
var action = HttpContext.Request.RequestContext.RouteData.Values["action"].ToString();
希望对您有所帮助
我刚刚发现我可以使用 SignalR's Hub pipeline:
public class LoggingPipelineModule : HubPipelineModule
{
protected override bool OnBeforeIncoming(IHubIncomingInvokerContext context)
{
Debug.WriteLine("Invoking '{0}.{1}({2})'.",
context.MethodDescriptor.Hub.Name,
context.MethodDescriptor.Name,
string.Join(", ", context.Args));
return base.OnBeforeIncoming(context);
}
}
这样我就可以将 Action/Controller 设置为全局对象并稍后访问。这当然不是最优的。
我可以在 SignalR hub 中获取当前 Action/Controller 名称 就像在通常的 MVC 控制器中使用 [=12 一样吗? =]?
目前我正在使用:
if (HttpContext.Current != null)
return HttpContext.Current.Request.RawUrl;
但这只是 returns 类似于:
另外 HubCallerContext
似乎没有进一步的信息。
有人知道吗?
您可以尝试从 RouteData 对象中获取值
var controller = HttpContext.Request.RequestContext.RouteData.Values["controller"].ToString();
var action = HttpContext.Request.RequestContext.RouteData.Values["action"].ToString();
希望对您有所帮助
我刚刚发现我可以使用 SignalR's Hub pipeline:
public class LoggingPipelineModule : HubPipelineModule
{
protected override bool OnBeforeIncoming(IHubIncomingInvokerContext context)
{
Debug.WriteLine("Invoking '{0}.{1}({2})'.",
context.MethodDescriptor.Hub.Name,
context.MethodDescriptor.Name,
string.Join(", ", context.Args));
return base.OnBeforeIncoming(context);
}
}
这样我就可以将 Action/Controller 设置为全局对象并稍后访问。这当然不是最优的。