1

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 では異なりますか?

前もって感謝します!

4

1 に答える 1

1

メソッドのパラメーターからこれを取得できます...それらを変更できる場合:

[HttpPost]
[ActionName("ActionName_IfDifferentThanMethodName")]
public HttpResonseMessage method(string contract, int id)
{
  string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings[contract];
}
于 2013-05-08T19:37:29.627 に答える