5

新しい ASP.NET プロジェクトの一部として、MVC 6 (ベータ 3) で構築された基本的な Web API コントローラーがあります。私が遭遇した問題は、動詞 PUT または PATCH を受け入れず、これらのメソッドで URL にアクセスしようとするとエラー 404 が返されることです。

基本的なテストとして私が持っているものは次のとおりです。

namespace Test.Controllers
{
    [Route("api/test")]
    public class TestController : Controller
    {
        [HttpGet]
        public string TestGet()
        {
            return "Hello from GET!";
        }

        [HttpPost]
        public string TestPost()
        {
            return "Hello from POST!";
        }

        [HttpDelete]
        public string TestDelete()
        {
            return "Hello from DELETE!";
        }

        [HttpPut]
        public string TestPut()
        {
            return "Hello from PUT!";
        }

        [HttpPatch]
        public string TestPatch()
        {
            return "Hello from PATCH!";
        }
    }
}

「 Postman http://localhost/api/test」を使用してアクセスして、各動詞 (GET、POST、DELETE、PUT、および PATCH) で URL を確認すると、GET、POST、および DELETE では正常に機能しますが、PUT および PATCH では 404 が返されます。

編集: MVC5以下でこれらの動詞を有効にする方法があったことを覚えています.WebDAVを無効にし、2つの動詞のハンドラを追加する必要がありますが、ASP.NET 5web.configのようなものはないので、web.configこれを修正する方法。おそらく解決されconfig.jsonたと思いますが、これを検索しようとしても何も役に立ちませんでした!

私が MVC5 で開発した以前のサイトにはこの問題はweb.configありませんでした。そこにあるファイルを見てみると、WebDAV を無効にする (実際にはアンインストールされている) ものや、拡張子のない URL の PUT/PATCH メソッドの処理を許可するものはないようです。なので、前に書いたことは当てはまらないと思います。

何か案は?

ありがとう

4

1 に答える 1