Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在信号机中访问MVC路由数据_C#_Asp.net Mvc_Signalr - Fatal编程技术网

C# 如何在信号机中访问MVC路由数据

C# 如何在信号机中访问MVC路由数据,c#,asp.net-mvc,signalr,C#,Asp.net Mvc,Signalr,我可以通过以下代码轻松访问C#MVC控制器中的RoutedData对象: string idKeyName = "id"; if (RouteData.Values.ContainsKey(idKeyName)) { string hash = RouteData.Values[idKeyName].ToString(); } 但是,在没有直接访问MVC RoutedData对象的情况下,如何在信号器集线器中做到这一点呢?我自己找到了一个解决方案: HttpContext.Curren

我可以通过以下代码轻松访问C#MVC控制器中的RoutedData对象:

string idKeyName = "id";
if (RouteData.Values.ContainsKey(idKeyName))
{
    string hash = RouteData.Values[idKeyName].ToString();
}

但是,在没有直接访问MVC RoutedData对象的情况下,如何在信号器集线器中做到这一点呢?

我自己找到了一个解决方案:

HttpContext.Current.Request.UrlReferrer.Segments.Last();
这实际上不是RouteData对象,但它包含我需要的路由的每个部分

这要求引用站点的路径如下所示(这是MVC的默认路径):

可以对管线值的每个部分使用“分段”集合

routes.MapRoute(
   name: "Default",
   url: "{controller}/{action}/{id}",
   defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);