Asp.net mvc 4 MVC4从ApiController获取路由数据

Asp.net mvc 4 MVC4从ApiController获取路由数据,asp.net-mvc-4,routes,Asp.net Mvc 4,Routes,当我点击API控制器时,我希望从我的路径中获取{contract}值 config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{contract}/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); 因此,当用户点击/api/rearch/a

当我点击API控制器时,我希望从我的路径中获取{contract}值

config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{contract}/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
因此,当用户点击/api/rearch/allergies/1234时,我想抓取“rearch”并使用它获取连接字符串

我尝试使用RouteData和RouteTable,如下所示,但运气不佳:

this.RouteData.Values["contract"].ToString() 
RouteTable.Routes["contract"]
有什么我遗漏的吗?在ApiController中这是不同的吗


提前谢谢

您可以从该方法的参数中获取这一点。。。如果您可以更改这些设置:

[HttpPost]
[ActionName("ActionName_IfDifferentThanMethodName")]
public HttpResonseMessage method(string contract, int id)
{
  string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings[contract];
}

您可以从该方法的参数中获取此信息。。。如果您可以更改这些设置:

[HttpPost]
[ActionName("ActionName_IfDifferentThanMethodName")]
public HttpResonseMessage method(string contract, int id)
{
  string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings[contract];
}