【问题标题】:Why the ajax code not working? [closed]为什么ajax代码不起作用? [关闭]
【发布时间】:2016-03-30 14:26:01
【问题描述】:

我是 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">
                    <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>
</div>

           <script>
                   $(document).ready(function () {
                       $('#savedata').click(function () {
                           var data = {
                               "username": $("#username").val(),
                               "password": $("#password").val()
                           };
                           $.ajax({
                               url: "/Account/ValidateUser",
                               type: "Post",
                               data: JSON.stringify(data),
                               dataType: "json",
                               contentType: "application/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请求报错了?

标签: javascript jquery asp.net ajax asp.net-mvc


【解决方案1】:

不需要JSON.stringify,修改你的ajax调用data如图:-

$.ajax({
          url: "/Account/ValidateUser",
          type: "Post",
          data: data,
          dataType: "json",
          .....
});

【讨论】:

  • 谢谢它现在可以工作了,但是我的用户名和密码没有与我的 jsonresult 连接,所以当我输入正确的用户名和密码时,它不会发送到婴儿车中
  • @MahmoudSamy...无法理解您要说的内容..现在如果您有其他问题,请将其作为单独的主题发布在 SO..请不要在 cmets 中提出其他问题部分。如果此答案解决了您的问题,请将其标记为已接受。
  • 谢谢,我会发布另一个问题,非常感谢您的回答和建议
  • @MahmoudSamy...很高兴为您提供帮助..:)
猜你喜欢
  • 1970-01-01
  • 2017-08-22
  • 1970-01-01
  • 2017-05-24
  • 2021-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多