我正在尝试使用TypeScript代码和Chrome Advanced Rest Client调用一个简单方法,我收到404错误。
[HttpPost]
[Route("api/offert/TestPost")]
public IHttpActionResult TestPost(int idid)
{
//http://localhost/prova/api/offert/TestPost
var anonymousTypeVar = new { x = 15, y = 120 };
return Json(anonymousTypeVar);
}
var data = { idid: 1};
this.baseUrl = 'http://localhost/prova/api/offert/';
this.http.post(this.baseUrl + "TestPost", JSON.stringify(data),
this.getRequestOptions)
.map(response => response.json())
.subscribe();
在这一刻我仍然得到404错误......
我知道我可以连接传递“?idid = 1”的url作为参数,但我想将一个Json字符串传递给webmethod ......
我如何更改代码?
由于
答案 0 :(得分:1)
我想知道您的JSON数据是否存在问题......我确信MVC很乐意将带有键值对的URL或Body映射到一个简单的参数,即
idid=1 -> int id
但你会过世:
{ idid: 1 }
需要映射到...
public class OffertRequest
{
public int idid { get; set; }
}
所以你的API将是:
public IHttpActionResult TestPost(OffertRequest idid)
Alernatively,在请求正文中传递一个简单的键/值对。