ASP.Net WepAPI - 我可以从 Get Methods 获得结果,但我不能 Post

ASP.Net WepAPI - I can get results from Get Methods but I cannot Post

我的 API 包含 2 个 Get 方法和 1 个 POST。 2 得到工作但是 POST returns 这个消息:

{"Message":"The requested resource does not support http method 'GET'."}

这些是我的方法:

[HttpGet]
    public IEnumerable<tblMetrHist> Get(string accntnum)
    {
        ...
    }
    [HttpGet]
    public IEnumerable<CustomerInfo> GetCustomer(string accntnum)
    {
        ...
    }
    [HttpPost]
    public IHttpActionResult Post([FromUri] string num, [FromUri] string reading)
    {
        using (CustomerEntities entities = new CustomerEntities())
        {
            entities.tbl1.Add(new tbl1()
            {
                Number = num,
                Reading = reading
            });

            entities.SaveChanges();
        }

        return Ok();
    }

我的路线很简单:

config.Routes.MapHttpRoute(
                name: "DefaultApiWithAction",
                routeTemplate: "api/{controller}/{action}"
            );

所以我不确定如何让 API 将该方法识别为“Post”而不是“Get”。请帮忙?

创建视图模型

public class ViewModel
{
 public string Num {get; set;}
 public string Reading {get; set;}
}

试试这个

[HttpPost()]
 public IHttpActionResult Post([FromUri] ViewModel model)
  {
       var num=model.Num;
        .....
}

更新

由于浏览器自动执行get调用,我建议PO使用其他工具post。 Chrome 的“Advanced Rest Client”被 PO 选择制作 post 并且一切正常。