在ajax put请求之后,服务器上的接收对象属性为null

时间:2015-11-20 09:54:26

标签: javascript c# ajax asp.net-mvc http-put

我通过向服务器发送API请求,将浏览器中的数据发送到我的服务器上的ajax(方法为PUT),这是一个问题。这是我的JavaScript代码:

var json = JSON.stringify({
    StemType: {
        ID: parseInt(this.dataset.id),
        Type: this.dataset.type,
        GebruikerID: "@(Model.DeTopic.Gebruiker.Id)"
    },
    Punten: parseInt(this.dataset.punten),
    GestemdeGebruikerID: "@(Model.AangemeldeGebruiker)"
});

$.ajax({
    url: "../Stem/Toevoegen",
    type: "PUT",
    data: json,
    success: function (returnData) {
        // my code
    }
});

这是变量json中的json代码:

{
    "StemType": {
        "ID": 24731,
        "Type": "Topic",
        "GebruikerID": "539e6078"
    },
    "Punten": 1,
    "GestemdeGebruikerID": "3aedefab"
}

这是服务器上的C#代码。

public class StemController : ApiController
{
    [HttpPost]
    [Authorize]
    [Route("Stem/Toevoegen")]
    public void Toevoegen([FromBody]Stem stem)
    {
        Console.WriteLine(stem.ToString());
    }
}

这是课程Stem

public class Stem
{
    public StemType StemType { get; set; }
    public int Punten { get; set; }
    public string GestemdeGebruikerID { get; set; }
}

public class StemType
{
    public int ID { get; set; }
    public Type Type { get; set; }
    public string GebruikerID { get; set; }
}

但如果我在服务器上调试我的代码,我就得到了这个:

StemType value is null, punten value is zero, GestemdeGerbuikerID is also null

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

我找到了两种可能的方式:

  1. 请勿将其作为对象进行字符串化。
  2. 为Json代码添加contentType: "application/json"