Newtonsoft JToken Null还是它? ASP.NET Core Web API

时间:2017-01-11 22:41:33

标签: asp.net json asp.net-web-api

编辑:我想我想通了。

帖子:

 m = '{" userID":"1"}';

虽然Put有:

m = '{"userID":"1"}';

注意区别?该空间改变了令牌。

愚蠢我 愚蠢的JavaScript。

感谢Shiva的工作。

原件:

作为序言,这是一个个人项目,为了学习,最佳实践并不值得在这里写一篇三页的文章。然而,链接到一个并不是一件坏事。 ;)

所以,我遇到了我遇到的最美味,最荒谬的问题。使用[FromBody]值

// POST api/values
    [HttpPost]
    public HttpResponseMessage Post([FromBody] JToken value){
        int b = (int)value.SelectToken("UserID");
    }

返回"值不能为空。参数名称:值"

“本地”面板具有: +值{{   " UserID":" 1" Newtonsoft.Json.Linq.JToken {Newtonsoft.Json.Linq.JObject}

好的,所以它有价值。这很奇怪。

时更是如此
[HttpPut]
    public HttpResponseMessage Put([FromBody]JToken value){
        int b = (int)value.SelectToken("UserID");
    }

工作得很好。请注意代码中明显缺乏差异。

哦,我经过的对象?

{{
  "UserID": "1"
}}

那么,任何人都有任何猜测是什么发生了什么?我此时脑细胞出血了。

编辑:我可爱的测试AJAX调用:(注意,这是DELETE。)

var a = new XMLHttpRequest();

a.open("DELETE", "../api/manifests");
a.setRequestHeader("Content-type", "application/json");
a.onreadystatechange = function () {
    if (a.readyState === XMLHttpRequest.DONE && a.status == "200") {
        alert("Manifest Created!");
        window.location = "../Portal/ViewManifest?mid="+d;
    }
}

m = '{"userID":"1"}';
a.send(m);

0 个答案:

没有答案