繁体   English   中英

$ http.post将空参数发布到mvc.net api

[英]$http.post posts null parameter to mvc.net api

我在我的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. 确保您的url正确。 我看你的操作方法的名称- ActualizarEstatus ,但你在呼唤/AdminV2/Vet/ObtenerVets在你的Ajax调用。 那是不对的,请更正。

  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);
    }
});

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

在此处输入图片说明

在JS方面,请确保将结果包装到名为estatus的属性中,然后estatusvar modelo (在C#和JS中应使用相同的名称)。 在发送$http.post之前,还要对此属性进行Stringify

您必须对模型进行分类。 这个包装器可以帮助您的模型制作json。

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

});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM