作为新 ASP.NET 项目的一部分,我在 MVC 6(beta 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!";
}
}
}
使用“邮递员”访问http://localhost/api/test
以检查每个动词(GET、POST、DELETE、PUT 和 PATCH)的 URL 依次适用于 GET、POST 和 DELETE,但使用 PUT 和 PATCH 时会出现 404。
编辑:
我记得有一种方法可以为 MVC5 和更低版本启用这些动词,其中包括禁用 WebDAV 并通过 为两个动词添加处理程序web.config
,但由于在 ASP.NET 5 中没有这样的东西,web.config
我完全不知所措如何解决这个问题。我假设它可能已经通过config.json
但我所有的搜索尝试都没有返回任何帮助!
我在 MVC5 中开发的以前的站点没有这个问题,并且查看了该web.config
文件,其中似乎没有任何禁用 WebDAV(它实际上已被卸载)或允许处理无扩展 URL 的 PUT/PATCH 方法的内容。所以我认为我之前写的内容并不适用。
有任何想法吗?
谢谢