C#WebApi POST方法和TypeScript

时间:2017-04-08 09:30:59

标签: c# asp.net-mvc typescript asp.net-web-api

我正在尝试使用TypeScript代码和Chrome Advanced Rest Client调用一个简单方法,我收到404错误。

WebApi方法

[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);
}

TypeScript代码

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 ......

我如何更改代码?

由于

1 个答案:

答案 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,在请求正文中传递一个简单的键/值对。