猿问

通过 c# asp.net 中的 postasync 方法传递多个数据

我正在尝试使用 http postasync 客户端方法传递多个数据。目前我在客户端使用 postasync,在服务器端我有一个 post 方法,它接受两个参数。我的问题是如何使用 c# 在服务器端成功检索此信息。我希望能够检索登录信息,以及 islogin 布尔值。如何在服务器端检索它。这是服务器的代码:


  // POST: api/Register

  [ResponseType(typeof(Login))]

  public IHttpActionResult PostLogin(Login login, bool isLogin) {

         if (!ModelState.IsValid) {

            return BadRequest(ModelState);

        }

        using (SqlConnection conn = new SqlConnection(_dbConn))

        {

            conn.Open();

            SqlCommand cmd = new SqlCommand("GetLogin", conn);

            cmd.CommandType = System.Data.CommandType.StoredProcedure;

            SqlParameter param = new SqlParameter();

            cmd.Parameters.AddWithValue("@email", SqlDbType.VarChar).Value = login.Email;

            cmd.Parameters.AddWithValue("@pwd", SqlDbType.VarChar).Value = login.Password;

            SqlParameter returnValue = new SqlParameter("returnVal", SqlDbType.Int);

            returnValue.Direction = ParameterDirection.ReturnValue;

            cmd.Parameters.Add(returnValue);

            cmd.ExecuteNonQuery();

            var result = returnValue.Value;

            if (isLogin == true)

            {

                //int result = db.GetLogin(login.Email, login.Password);



                switch (result)

                {

                    case (int)DBResponses.Success:

                        //return CreatedAtRoute("DefaultApi", new { id = 0 }, (int)DBResponses.Success);

                        return Ok((int)DBResponses.Success);


                    case (int)DBResponses.BadEmail:

                        //return CreatedAtRoute("DefaultApi", new { id = 2 }, (int)DBResponses.BadEmail);

                        return Ok((int)DBResponses.BadEmail);

                    case (int)DBResponses.BadPassword:

                        //return CreatedAtRoute("DefaultApi", new { id = 3 }, (int)DBResponses.BadPassword);

                        return Ok((int)DBResponses.BadPassword);


                }

            }

        

浮云间
浏览 899回答 2
2回答

回首忆惘然

您在这里有两个选择:通过查询字符串调用API方法,这样您只需在服务器端读取查询字符串即可。使用 JsonConvert.SerializeObject(ObjectHere) 序列化您的对象,另一方面您使用 DeserializeObject。不要忘记将 [serializable] 添加到您的实体定义(类)。您还可以使用 HttpClient 来执行请求本身

茅侃侃

如果我确实理解您的问题,这里是解决方案从您的客户端(JS)发送数据创建一个对象var logObj = new Object();logObj.username = "";logObj.password = "";..logObj.etc = "";要返回信息,您可以创建一个如下所示的类class Loginfo{        public bool Islogin { get; set; }        public string UserName { get; set; }        public string Password { get; set; }}并返回一个对象希望这会有所帮助
随时随地看视频慕课网APP
我要回答