Web APIとWebアプリケーションを並べて使用しようとしていますが、WebAPIルーティングに問題があります。
ルート構成は次のとおりです。
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
// Map this rule first
config.Routes.MapHttpRoute(
name: "WithActionApi",
routeTemplate: "api/{controller}/{action}/"
);
//sets up the API route
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/"
//,defaults: new { id = RouteParameter.Optional }
);
これはWebアプリでは正常に機能し、/ api /controllerのみを含むWebAPIでも正常に機能しますが、/ api / controll/actionを呼び出すと正常に機能しません。
私が使用しているもの:
[HttpPost]
[ActionName("ConfirmRequest")]
public HttpResponseMessage ConfirmRequest(string guid, string type, PartiStatus status = PartiStatus.Yes)
アクションの動詞と名前を指定します。ルートデバッガー(Web APIでは機能しない)と、動作する(そしてクラッシュする)別のデバッガーを試しましたが、POSTアクションを機能させることができませんでした。
私はこのアクションをGETに変更することになり、それは正常に機能します。GETパラメーターはフレームワークがそれを理解するのに役立つと思います。
正しく動作させる方法がまだわかりません。(アクションへの個性マッピングなし)