ASP.NET Core Post Action返回null

时间:2017-07-21 22:59:48

标签: asp.net-core

我有一个简单的控制器方法应返回JSON结果但返回null。我需要使用jQuery $.ajax来调用它。我使用Postman测试它,它确实返回null。我不确定我做错了什么。

我使用Postman使用以下JSON数据测试它并返回null:

{ "id": 2 }

这是控制器方法:

// Post: Contact
[HttpPost, ActionName("GetContact")]
public JsonResult GetContactPost([FromBody] long id)
{
    var contact = _context.Contact.SingleOrDefault(m => m.ContactId == id);
    return Json(contact);
}

在我的应用程序中,我使用以下JavaScript,它也返回null:

function GetContact(id) {
    $.ajax({
        type: "POST",
        url: "@Url.Action("GetContact","Contacts")",
        data: { id: id },
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (result) {
            alert("id: " + id + " result: " + result);
        },
        failure: function (response) {
            alert(response.d);
        }
    });
}

1 个答案:

答案 0 :(得分:0)

我明白了。参数必须是模型或视图模型对象。

    // Post: Contact
    [HttpPost, ActionName("GetContact")]
    public JsonResult GetContactPost([FromBody] ContactVM findContact)
    {
        var contact = _context.Contact.SingleOrDefault(m => m.ContactId == findContact.Id);
        return Json(contact);
    }