1. ホーム
  2. asp.net

[解決済み] ASP.NET Web Api: 要求されたリソースは、httpメソッド'GET'をサポートしていません。

2022-12-19 15:59:44

質問

ApiControllerに以下のようなアクションを設定しています。

public string Something()
{
    return "value";
}

そして、以下のようにルートを設定しました。

routes.MapHttpRoute(
    name: "DefaultApi",
    routeTemplate: "api/{controller}/{action}/{id}",
    defaults: new { id = RouteParameter.Optional }
);

ベータ版では、これは問題なく動作していましたが、最新のリリース候補版にアップデートしたところ、このような呼び出しでエラーが発生するようになりました。

要求されたリソースは http メソッド 'GET' をサポートしていません。

なぜこれがうまくいかなくなったのでしょうか?

({action}をなくして、コントローラを大量に作ればいいのでしょうが、それはそれで面倒な気がします)

どのように解決するのですか?

コントローラ内のアクションにHttpMethodが設定されていない場合、RCではHttpPostのみと仮定されます。ベータ版では、GET, PUT, POST, Delete のすべてのメソッドに対応していると見なされます。これはベータ版からRC版への小さな変更点です。AcceptVerbs("GET", "POST")] を使えば、簡単に複数の httpmethod をアクションで宣言することができます。