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 并且一切正常。
我的 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 并且一切正常。