我已经构建了一个返回HttpResponseMessage
的WebAPI(使用版本2)。我对这些WebAPI方法发出AJAX
个请求,WebAPI返回JSON
个响应。这一切都很好,但是现在我需要的是一种向WebAPI方法发出AJAX
GET请求的方法,该方法只返回一个布尔值。以下是我用于获取GET
的{{1}}请求的示例:
JSON
我希望完成的是(这是伪代码):
$.ajax({
url: 'http://server/site/api/BulletinBoard/GetUserMessageHistory?userId=' + userId + '&messageId=' + messageId,
type: 'GET',
dataType: 'json',
crossDomain: true,
success: function (data) {
DoSomething();
},
error: function (x, y, z) {
alert(x + '\n' + y + '\n' + z);
}
});
我的WebAPI方法返回 var hasMessageBeenDisplayed =
$.ajax({
url: 'http://server/site/api/BulletinBoard/GetUserMessageHistory?userId=' + userId + '&messageId=' + messageId,
type: 'GET',
dataType: 'json',
crossDomain: true,
success: function (data) {
DoSomething();
},
error: function (x, y, z) {
alert(x + '\n' + y + '\n' + z);
}
});
或hasMessageBeenDisplayed
或true
的位置。这是我的WebAPI方法的一个例子:
false
为了能够发出期望[HttpGet]
public HttpResponseMessage GetUserMessageHistory(string userId, int messageId)
{
var userMessageHistory = (from i in db.UserMessageHistories
where i.UserId == userId &&
i.MessageId == messageId
select new
{
UserId = i.UserId,
MessageId = i.MessageId,
LastSeen = i.LastSeen,
}).ToList();
HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, userMessageHistory);
return response;
}
或AJAX
的{{1}}请求,我仍会从我的WebAPI方法返回true
吗?如何制作false
GET请求,其调用的方法可以返回HttpResponseMessage
或AJAX
?
答案 0 :(得分:3)
为什么不简单地改为:
[HttpGet]
public bool GetUserMessageHistory(string userId, int messageId)
{
var userMessageHistory = (from i in db.UserMessageHistories
where i.UserId == userId &&
i.MessageId == messageId
select new
{
UserId = i.UserId,
MessageId = i.MessageId,
LastSeen = i.LastSeen,
}).ToList();
return userMessageHistory.any();
}