繁体   English   中英

ASP.Net WepAPI - 我可以从 Get Methods 获得结果,但我无法发布

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

我的 API 包含 2 个 Get 方法和 1 个 POST。 2 Gets 工作但是 POST 返回此消息:

{"Message":"请求的资源不支持http方法'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 将该方法识别为“发布”而不是“获取”。 请帮助?

创建视图模型

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用别的工具发帖。 Chrome的“Advanced Rest Client”被PO选中发帖,一切正常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM