为什么 Post 有效,但 Get 无效,具有相同的路由和参数?

Why does Post work, but not Get, with the same route and args?

我有以下控制器代码:

namespace PlatypusReports.Controllers
{
    [RoutePrefix("api/platypus")]
    public class PlatypusController : ApiController
    {
        [Route("{unit}/{begindate}")]
        [HttpPost]
        public void Post(string unit, string begindate)
        {
            . . .
        }

        [Route("{unit}/{begindate}")]
        [HttpGet]
        public string Get(string unit, string begindate)
        {
            . . .
        }
        . . .         

调用POST方法有效,但调用GET方法无效;在后一种情况下,我得到“不允许使用 405 方法 - 请求的资源不支持 http 方法 'GET'”。“=13=”

我用 Postman 的 URL 称呼它们:

http://localhost:52194/api/platypus/poisontoe/201509

...唯一的区别是我 select "POST" 有效,而当我 select "GET" 时无效。

为什么 POST 有效但 GET 无效?我必须在我的 GET 代码中更改什么才能使其成为 supported/allowed?

如果您使用的是 apicontroller,则不需要装饰器 HttpPost 和 HttpGet。如果你删除它们,它应该可以工作。