Asp.net web api 如何将字符串发布到web API控制器?

Asp.net web api 如何将字符串发布到web API控制器?,asp.net-web-api,Asp.net Web Api,我不熟悉web API。使用Visual Studio Community 2015。非常简单的测试代码 WebApiConfig.cs: config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}" ); 视图: 控制器: public class ClassingAlgorithmController : A

我不熟悉web API。使用Visual Studio Community 2015。非常简单的测试代码

WebApiConfig.cs:

         config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}"
        );
视图:

控制器:

public class ClassingAlgorithmController : ApiController
{
    [HttpPost]
    public ClassingResult PostWeightings([FromBody]string userWeightings)
    {
        return null;
    }
}

在控制器方法中,“userWeightings”始终为空。为什么?

如下更改ajax请求

  $.ajax({
        url: 'api/ClassingAlgorithm/',
        type: 'POST',
        contentType: "application/json",
        data:  JSON.stringify('hello') 
    });

更改ajax请求,如下所示

  $.ajax({
        url: 'api/ClassingAlgorithm/',
        type: 'POST',
        contentType: "application/json",
        data:  JSON.stringify('hello') 
    });

我刚刚想出了解决办法:

工作代码在$.ajax调用中包含以下内容:

data: JSON.stringify(userWeightings),
不工作的代码已被删除

data: { userWeightings: JSON.stringify(userWeightings) },

但我不明白为什么。

我刚刚想出了解决方案:

工作代码在$.ajax调用中包含以下内容:

data: JSON.stringify(userWeightings),
不工作的代码已被删除

data: { userWeightings: JSON.stringify(userWeightings) },

但我不明白为什么。

我确实浏览了很多帖子,包括Stackoverflow上的帖子。他们都说上述方法会奏效,但事实并非如此。我花了8个小时尝试了所有的选项和可能性,但它就是不起作用。你能把它改成
数据:{userWeightings:'hello'}
然后再试一次吗。我真的认为
Json.Stringify
是个问题。只需查看chrome网络选项卡。。。服务器上到底发布了什么?我确实浏览了很多帖子,包括Stackoverflow上的帖子。他们都说上述方法会奏效,但事实并非如此。我花了8个小时尝试了所有的选项和可能性,但它就是不起作用。你能把它改成
数据:{userWeightings:'hello'}
然后再试一次吗。我真的认为
Json.Stringify
是个问题。只需查看chrome网络选项卡。。。发布到服务器的确切内容我在方法中放入以下行:string strReq=new System.IO.StreamReader(HttpContext.Current.Request.InputStream.ReadT‌​oEnd();strReq为:userWeightings=%22Hello%22I在方法中放入以下行:string strReq=new System.IO.StreamReader(HttpContext.Current.Request.InputStream.ReadT‌​oEnd();strReq是:userWeightings=%22Hello%22