2015-11-20 1 views
0

У меня возникла проблема с отправкой данных из браузера на API на моем сервере по запросу ajax на сервер (метод PUT). Вот мой JavaScript код:Свойства получающего объекта являются нулевыми на сервере после запроса ajax put

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

Выставляя объект таким образом, включите «contentType:» application/json »,' option –

+2

Или просто не строгите его. – Camo

ответ

0

Я нашел два возможных пути:

  1. Не stringify его для отправки в качестве объекта.
  2. Добавить contentType: "application/json" для кода Json.
Смежные вопросы