任何人都可以帮助我吗?
我正在使用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);
}
});
}
答案 1 :(得分:0)
您是否忘记了.val()
所有选择器?
$("#nome").val();
在通过AJAX调用之前提醒数据以确保您获取数据。
此外,您需要这样做:
将您的var cliente
更改为var clienteObj
,然后尝试以下操作:
contentType: 'application/json',
data: JSON.stringify({ cliente: clienteObj})
答案 2 :(得分: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);
}
});
}
我已将内容类型更改为false。这样您也可以传递Javascript对象。
我还添加了.val()来从该ID中获取值