MVC4从ApiController获取路由数据

时间:2013-05-08 17:32:00

标签: asp.net-mvc-4 routes

当我点击我的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中是不同的吗?

提前致谢!

1 个答案:

答案 0 :(得分:1)

你可以从方法的参数中获取它...如果你可以改变它们:

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