如何从来自api控制器的jquery中获取价值

时间:2018-08-18 20:57:44

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

你好,我有一个Web API控制器,它正在返回一个整数值,我不知道如何在jquery ajax函数中获取它。 我的API控制器正在关注。

[HttpGet]
[Route("api/tblProducts/{UserId}/CheckUserAvil")]
[ResponseType(typeof(int))]
public IHttpActionResult CheckUserAvil(string UserId)
{
    int Exist = db.CheckUserIdAvil(UserId);
    return Ok(Exist);
}

给出了我的jquery代码

$.getJSON("/api/tblProducts/" + Userid + "/CheckUserAvil", function (data) {

});

我不知道如何处理响应,我想从控制器来的变量值存在。 请帮助我。

更新 我的存储过程代码不正确

USE [MakaAnOrderDB]
GO

/****** Object:  StoredProcedure [dbo].[CheckUserIdAvil]    Script Date: 8/19/2018 1:18:30 PM ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[CheckUserIdAvil]
      @UserId nvarchar(255)
AS
BEGIN
      SET NOCOUNT ON;

      DECLARE @Exists INT

      IF EXISTS(SELECT @UserId
                        FROM tblUser
                        WHERE UserId = @UserId  )
      BEGIN
            SET @Exists = 1
      END
      ELSE
      BEGIN
            SET @Exists = 0
      END

      RETURN @Exists
END
GO

它在Sql中很好用,但是在Api中它一直在-1重复播放

1 个答案:

答案 0 :(得分:0)

回调参数data将包含您要查找的数据。

一个建议是让操作返回一个模型,使返回的数据更容易理解。

例如,以下代码使用匿名对象保存数据。

[HttpGet]
[Route("api/tblProducts/{UserId}/CheckUserAvil")]
[ResponseType(typeof(int))]
public IHttpActionResult CheckUserAvil(string UserId) {
    int exist = db.CheckUserIdAvil(UserId);
    var model = new {
        Exist = exist
    };
    return Ok(model);
}

然后,客户端将从回调函数中的响应中提取所需的数据

$.getJSON("/api/tblProducts/" + Userid + "/CheckUserAvil", function (data) {
    var exist = data.Exist;
    console.log("Exist: " + exist);
    //...
});