2016-01-23 19 views
0

我有这个在我的js

var modelo = { 
    Estatus: 2, 
    IdVet: 1     
}; 

$http.post('/AdminV2/Vet/ActualizarEstatus', modelo) 
    .then(function (res) { 

    }); 

这对我的.cs

[HttpPost] 
public JsonResult ActualizarEstatus(ActualizarEstatus estatus) 
{ 
    if (estatus == null) 
    { 
     return JsonResultBool(false); 
    } 
    return JsonResultBool(true); 
} 

public class ActualizarEstatus 
{ 
    public int Estatus { get; set; } 
    public int IdVet { get; set; } 
} 

和参数 “estatus” 总是空。我究竟做错了什么?

编辑:更正的例子

+1

您确定要调用'ObtenerVets'而不是'ActualizarEstatus'吗? – Rodolfo

+0

你需要[FromBody]属性吗?因此,它会像 公共JsonResult ActualizarEstatus([FromBody] ActualizarEstatus estatus) 此外,还要确保你做其他人说什么,Json.stringify对象在发送前。 –

回答

3

几件事情在发送之前该物业 -

  1. 确保您url是正确的。我看到您的操作方法名称为 - ActualizarEstatus,但您在ajax调用中致电/AdminV2/Vet/ObtenerVets。这是不正确的,所以纠正它。

  2. 您必须使用estatus变量名称才能通过ajax传递数据。

请使用下面的代码,我测试了它 -

var modelo = { 
    Estatus: 2, 
    IdVet: 1 
}; 

$.ajax({ 
    url: "/Home/ActualizarEstatus", // this is my local url, change it with your valid url. 
    type: "POST", 
    data: JSON.stringify({ estatus: modelo }), 
    contentType: "application/json; charset=utf-8", 
    success: function(result) { 
     console.log(result); 
    } 
}); 

当我在上面的代码中使用,我得到下面的输出 -

enter image description here

+0

谢谢!我在{estatus:modelo}中冒充了modelo,它工作正常。 – Hrodger

1

在您的JS方确保你换你的结果在属性分配给var modelo之前调用estatus(相同的名称应该在C#和JS使用)。此外Stringify$http.post

1

你必须字符串化模型。这个包装可以帮助你的模型制作json。

$http.post('/AdminV2/Vet/ObtenerVets', JSON.stringify(modelo)) 
.then(function (res) { 

});