C# 如何发布到asp.net核心web api控制器并获取具有值的参数
我正在努力让我的自托管asp.net web api服务器获得一个在控制器上发布的调用C# 如何发布到asp.net核心web api控制器并获取具有值的参数,c#,rest,asp.net-core-webapi,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 (sca
$.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(";-)");
...
。。。
[路线(“”)
[HttpPost]
公共httpresponsemessagepost(命令cmd)
{
ASSERT(null,cmd);//我认为您缺少FromBody
参数声明,用于cmd
参数,如下所示:
[Route( "" )]
[HttpPost]
public HttpResponseMessage Post([FromBody] Command cmd) // <<- tweak here
{
ASSERT(null,cmd); // <=== no problem here :-)
if(cmd=="go") Go(";-)");
...
[路线(“”)]
[HttpPost]
public HttpResponseMessage Post([FromBody]Command cmd)/问题在于在ajax调用中使用contentType:'application/json'。
-我删除了它,并获得了数据。只是检查一下,为什么不使用FromBody
属性声明cmd
参数,如下所示:public-httpresponsemessagepost([FromBody]Command-cmd)
?的可能重复。我进一步调试了一下,发现问题是由ajax调用中的contentType:“application/json”引起的。。