2016-02-04 42 views
1

我有一些JSON對象在客戶端(瀏覽器在這種情況下)如下的ASP.NET Web API並沒有得到POST數據

objeto = { 
    idSala: idSala, 
    listaEtapas: listaEtapas, 
    listaMacros: listaMacros, 
    listaTI: listaTI, 
    listaTU: listaTU, 
    listaUnidades: listaUnidades, 
    listaTorres: listaTorres, 
    valor: valor, 
    regla: regla, 
    finicio: finicio, 
    ffin: ffin, 
    activo: activo 
}; 
$.post("/api/reglas", objeto).done(function() { 
    alert("ok"); 
}) 

正如你看到的,我將其發送直通jQuery的POST方法到IISexpress服務器在我自己的開發機器上。

在C#中,我創建了相應的模型:

public class reglaInsercion 
{ 
     int idSala { get; set; } 
     int[] listaMacros { get; set; } 
     int[] listaEtapas { get; set; } 
     int[] listaTI { get; set; } 
     int[] listaTU { get; set; } 
     int[] listaUnidades { get; set; } 
     string [] listaTorres { get; set; } 
     double valor { get; set; } 
     string regla { get; set; } 
     DateTime finicio { get; set; } 
     DateTime ffin { get; set; } 
     bool activo { get; set; } 
} 

而且我也已經設置了相應的控制措施

[Route("api/reglas")] 
[HttpPost] 
public HttpResponseMessage postRegla(reglaInsercion laRegla) 
{ 
    return Request.CreateResponse(HttpStatusCode.OK); 
} 

但是,當我調試我的代碼laRegla對象都有其成員alll根據數據類型爲空或零。我錯過了什麼?我閱讀過文檔,但無法找到我做錯了什麼。

+0

在Chrome控制檯中:'Uncaught ReferenceError:idSala is not defined'。 –

回答

0

我可能是錯的,但我認爲你需要通過AJAX調用以上方法。

[System.Web.Services.WebMethod] 
[Route("api/reglas")] 
[HttpPost] 
public HttpResponseMessage postRegla(reglaInsercion laRegla) 
{ 
    return Request.CreateResponse(HttpStatusCode.OK); 
} 
1

您需要定義你的模型如下:

public class reglaInsercion 
{ 
    public int idSala { get; set; } 
    public int[] listaMacros { get; set; } 
    public int[] listaEtapas { get; set; } 
    public int[] listaTI { get; set; } 
    public int[] listaTU { get; set; } 
    public int[] listaUnidades { get; set; } 
    public string[] listaTorres { get; set; } 
    public double valor { get; set; } 
    public string regla { get; set; } 
    public DateTime finicio { get; set; } 
    public DateTime ffin { get; set; } 
    public bool activo { get; set; } 
} 

添加public關鍵是你的屬性。

+0

它工作!經過四個小時的嘗試幾乎所有。非常感謝。我現在覺得非常愚蠢 – CRRojas

+0

不客氣的朋友,不要忘記接受這個答案作爲有效的迴應,它可能對其他用戶有用。乾杯。 :) –