如何发布到asp.net核心web api控制器并获得有价值的参数

时间:2017-09-06 07:31:03

标签: c# rest asp.net-core-webapi

我正在努力让自己托管的asp.net web api服务器接到一个在控制器上发帖的电话。

$.ajax({
    url: mySelfHostedAspWebApi, //i.e. http://1.2.3.4:1234/
    type: "POST",
    data: cmd,
    contentType: 'application/json',
    success: (function(scanCmd) {

   }), //success: (function (scanCmd){
});// $.ajax({

C#中的asp.net核心控制器非常简单。

  ...
  [Route( "" )]
  [HttpPost]
  public HttpResponseMessage Post(Command cmd)
  {
     ASSERT(null,cmd); // <=== problem here !!!
     if(cmd=="go") Go(";-)");
     ...

在我的一个旧项目中,我遇到了类似的问题...而且解决方法是在系统上打开一些文件,控制该帖子是否可以用于我自己的应用程序并在行上写POST控制对我的应用程序的访问。 (我只是记不起它是什么文件......)

  • 如果这听起来很熟悉,请添加提示.. 感谢

2 个答案:

答案 0 :(得分:1)

我认为您错过了FromBody参数的cmd参数声明,如下所示:

[Route( "" )]
[HttpPost]
public HttpResponseMessage Post([FromBody] Command cmd) // <<- tweak here
{
    ASSERT(null,cmd); // <=== no problem here :-)
    if(cmd=="go") Go(";-)");
    ...

答案 1 :(得分:0)

问题在于使用了ajax调用中的contentType:'application / json'。 - 我删除了它,并获得了数据。