繁体   English   中英

我如何使用jquery ajax在webapi控制器中将webform值作为模型类传递

[英]how can i pass my webform value in webapi controller as a model class using jquery ajax

这是我的ajax代码,在我的api中传递两个值

 function submitData() {
            var username = $("#username").val();
            var password = $("#password").val();
            $.ajax({
                type: 'POST',
                contentType: 'application/json; charset=utf-8',
                url: 'http://localhost:53893/api/login/checkLogin',
                data: JSON.stringify([username, password]),
                dataType: 'json',
                async: false,
                success: function (data) {

                    console.log(data);

                },
                error: function (err) {

                    console.log(err);
                }
            });
        }

这是我想在我的api控制器中传递的模型类

 public  class Login
    {
        public ObjectId _id { get; set; }

        public string username { get; set; }

        public string password { get; set; }

    }

这是我的API控制器方法,接受这两个参数

[HttpPost]
        public string checkLogin(Login login)
        {
            getLogin log = new getLogin();
     Boolean check =       log.checkLogin(login);

              if(check == true)
            {
                return "login done";
            }
              else
            {
                return "failed to login";
            }
        }

现在我想要的是在我的api控制器中接受此模型类,我尝试了很多,但始终为null

js代码:

            data: JSON.stringify({'username': username,'password': password})

API代码:

        [HttpPost]
        public string checkLogin([FromBody] Login login)
        {
            getLogin log = new getLogin();
     Boolean check =       log.checkLogin(login);

              if(check == true)
            {
                return "login done";
            }
              else
            {
                return "failed to login";
            }
        }

通过ajax传递的数据应具有必须接受的相同数据结构。

尝试建立类似的对象

JSON.stringify({'_id': id,  'username': username,   'password': password}),

要么

将它们分别作为两个字符串传递,然后在控制器中将它们分配给对象。

[HttpPost]
public string checkLogin(string username, string password)
{
  Login login = new Login();
  login.username = username;
  login.password = password;
  getLogin log = new getLogin();
  Boolean check = log.checkLogin(login);
  if(check == true)
  {
    return "login done";
  }
  else
  {
    return "failed to login";
  }
}

然后在ajax pass

data: "{'username': '" + username + "', 'password': '" + password + "'}"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM