Asp.net web api 如何将字符串发布到web API控制器?
我不熟悉web API。使用Visual Studio Community 2015。非常简单的测试代码 WebApiConfig.cs: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
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.ReadToEnd();strReq为:userWeightings=%22Hello%22I在方法中放入以下行:string strReq=new System.IO.StreamReader(HttpContext.Current.Request.InputStream.ReadToEnd();strReq是:userWeightings=%22Hello%22