2013-06-02 109 views
0

任何人都可以幫助我嗎?JQUERY Ajax將空對象傳遞給我的控制器

我發送一些數據對象到我的控制器使用ajax,但我得到我的控制器中的對象的空值。我嘗試了一切,沒有發生任何事情。

我的模型CS:

public class Cliente 
{ 
    [Key] 
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    public int IdCliente { get; set; } 

    [Required] 
    public string Nome { get; set; } 

    public string Sobrenome { get; set; } 
    public Endereco Endereco { get; set; } 
    public string Rg { get; set; } 
    public string Cpf { get; set; } 
    public Telefone Telefone { get; set; } 

    //[DataType(DataType.Date)] 
    public DateTime Nascimento { get; set; } 

} 

我的javascript:

var cliente = { 
nome: $("#nome"), 
sobrenome: $("#sobrenome"), 
rg: $("#rg"), 
cpf: $("#cpf"), 
nascimento: $("#nascimento"), 

telefone: { numero: $("#telefone") }, 

endereco: { 
    logradouro: $("#rua"), 
    complemento: $("#complemento"), 
    bairro: $("#bairro"), 
    cidade: $("#cidade"), 
    cep: $("#cep"), 
} 
}; 

function salva() { 
$.ajax({ 
    type: "POST", 
    async: false, 
    processData: false, 
    data: cliente, 
    //dataType: 'json', 
    //contentType: 'application/json; charset=utf-8', 
    url: 'Cadastro', 
    success: function (msg) { 
     console.log(msg); 
    } 
}); 
} 

和我的控制器:

 [HttpPost] 
    public ActionResult Cadastro(Cliente cliente) 
    { 
     if (service.Validate(cliente)) 
     { 
      service.Add(cliente); 
      //return RedirectToAction("Inicio"); 
      return Json(new { Cliente = cliente }); 
     } 
     return View(cliente); 
    } 
+0

您可以編輯您的問題。所以,而不是把這在我的答案,編輯您的問題 –

回答

0

嘗試移動的cliente設置的salva函數內部:

function salva() { 

var cliente = { 
nome: $("#nome"), 
sobrenome: $("#sobrenome"), 
rg: $("#rg"), 
cpf: $("#cpf"), 
nascimento: $("#nascimento"), 

telefone: { numero: $("#telefone") }, 

endereco: { 
    logradouro: $("#rua"), 
    complemento: $("#complemento"), 
    bairro: $("#bairro"), 
    cidade: $("#cidade"), 
    cep: $("#cep"), 
} 
}; 


$.ajax({ 
    type: "POST", 
    async: false, 
    processData: false, 
    data: cliente, 
    //dataType: 'json', 
    //contentType: 'application/json; charset=utf-8', 
    url: 'Cadastro', 
    success: function (msg) { 
     console.log(msg); 
    } 
}); 
} 
+0

沒有工作..... –

0

你忘了所有選擇器上的.val()

$("#nome").val(); 

通過AJAX調用之前的警報數據,以確保您獲取數據。

此外,你需要做的是:

更改var clientevar clienteObj,然後試試這個:

contentType: 'application/json', 
data: JSON.stringify({ cliente: clienteObj}) 
+0

哼.... 我認爲這不是一個問題... 無論如何,我試圖把.val()和我也收到一個空對象 –

+0

@ReFarias現在檢查我的答案... –

+0

我將我的var客戶端更改爲var clienteObj並保留此錯誤: 未捕獲TypeError:將圓形結構轉換爲JSON 您是否看到圖片? –

0
function salva() { 

    var cliente = { 
    nome: $("#nome").val(), 
    sobrenome: $("#sobrenome").val(), 
    rg: $("#rg").val(), 
    cpf: $("#cpf").val(), 
    nascimento: $("#nascimento").val(), 

    telefone: { numero: $("#telefone").val() }, 

    endereco: { 
    logradouro: $("#rua").val(), 
    complemento: $("#complemento").val(), 
    bairro: $("#bairro").val(), 
    cidade: $("#cidade").val(), 
    cep: $("#cep").val(), 
} 
}; 


$.ajax({ 
    type: "POST", 
    async: false, 
    processData: false, 
    data: cliente, 
    cache: false, 
    contentType: false, 
    url: 'Cadastro', 
    success: function (msg) { 
    console.log(msg); 
    } 
}); 
} 

I have changed content type to false .This allows you to pass Javascript objects as well.

I have also added .val() to get value from that id

+1

包括的原因。 –

相關問題