我有一个简单的控制器方法应返回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);
}
});
}
答案 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);
}