使用ASP.NET WebAPI返回由Ajax GET请求使用的Boolean

时间:2014-01-10 16:11:54

标签: c# jquery asp.net ajax asp.net-web-api

我已经构建了一个返回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); } }); hasMessageBeenDisplayedtrue的位置。这是我的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请求,其调用的方法可以返回HttpResponseMessageAJAX

1 个答案:

答案 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();
}