如何使用 asp.net Mvc 将文本值发送到我的控制器

2023-11-30

我是asp MVC新手,所以我将尝试使用ajax制作登录表单,所以我编写jsonresult来检查控制器中的用户名和密码,我在ajax中调用它,但当我写正确的用户名和密码时它不起作用显示在日志消息登录字段中,这是我的控制器代码

public ActionResult login()
{
    return View();
}


[HttpPost]

public JsonResult ValidateUser(string username,string password)
{
    using(var contxt=new EnglisCenterEntities())
    {
        var data = from a in contxt.Employee
                   where a.Username == username && a.Passwords == password
                   select a;
        if(data.Count()>0)
        {
            return Json(new { Success = true }, JsonRequestBehavior.AllowGet);
        }
        else
        {
            return Json(new { Success = false }, JsonRequestBehavior.AllowGet);
        }
    }
}

这是我的视图和ajax代码

<div class="container">
  <div class="row">
<div class="col-md-6 col-md-offset-3 alert alert-warning">
    <h2 class="text-center">Login</h2>
    <div class="row">
        <div class="col-md-12">
            <div class="form-group" id="log">
                <div class="input-group">
                    <span class="input-group-addon"><i class="glyphicon glyphicon-user"></i></span>
                    <input type="text" id="username" class="form-control" placeholder="Username">
                </div>
            </div>
        </div>
    </div>
    <div class="row">
        <div class="col-md-12">
            <div class="form-group">
                <div class="input-group">
                    <span class="input-group-addon"><i class="glyphicon glyphicon-lock"></i></span>
                    <input type="password" class="form-control" id="password" placeholder="Password">
                </div>
            </div>
        </div>
    </div>
    <div class="row">
        <div class="col-md-12">
            <div class="form-group">
                <button class="btn btn-warning form-control" type="submit" id="savedata"><i class="glyphicon glyphicon-log-in"></i>&nbsp;Login</button>
            </div>

        </div>
    </div>
</div>

          <script>
               $(document).ready(function () {
                   $('#log').submit(function (e) {
                    e.preventDefault();
                       var data = {
                               username: function () { return $("#username").val(); },
                               password: function () { return $("#password").val(); }
                           };
                       $.ajax({
                           url: "/Account/ValidateUser",
                           type: "Post",
                           data:data,
                           dataType: "json",

                           success: function (response) {
                               if (response.Success) {
                                   $.get("@Url.Action("Index", "Home")", function (data) {
                                       $('.container').html(data);
                                   });

                               }
                               else
                                   window.location.href = "@Url.Action("Login", "Account")";
                           },
                           error: function () {
                               console.log('Login Fail!!!');
                           }
                       });
                   });
               });
     </script>

那么为什么ajax代码不检查用户名和密码呢?


我可以在你的代码中看到两个错误:

var data = {
    username: function() { return $("#username").val(); },
    password: function() { return $("#password").val(); }
};

这将帮助您获得输入的实际值。

并且不要将您的对象字符串化,只需传递它即可:

$.ajax({
    //...
    data: data,
    //...    
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 asp.net Mvc 将文本值发送到我的控制器 的相关文章

随机推荐