MVC3学习:利用mvc3+ajax实现登录

用到的工具或技术:vs2010,EF code first,JQuery ajax,mvc3。

第一步:准备数据库。

利用EF code first,先写实体类,然后根据实体类自动创建数据库;或者先创建数据库,再写实体类,都可以。如果实体比较多,可以先创建数据库后,利用POCO工具来自动生成实体类。

我这里只有一个登录用户表,非常简单,自己手动在Model写实体类:

namespace ajaxDemo.Models

{

    public class Users

    {

        [Key]

        public int Uid { get; set; }

        public string UserName { get; set; }

        public string PassWord { get; set; }

    }

}
View Code
using System.Data; //需要添加此命名空间

using System.Data.Entity; //需要添加此命名空间



namespace ajaxDemo.Models

{

    public class LoginContext:DbContext

    {

        public LoginContext()

            : base("name=login") //自定义数据库连接字符串

        {



        }

        public DbSet<Users> Users { get; set; }

    }

}

 

第二步:写控制器 

直接上代码

namespace ajax.Controllers

{

    public class LoginController : Controller

    {

       private LoginContext db = new LoginContext();

        public ActionResult login()

        {

            return View();

        }

        

        public ActionResult LogOn(string usn, string pwd)

        {

            if (Request.IsAjaxRequest())

            {

                int n = (from c in db.Users

                         where c.UserName == usn

                         && c.PassWord == pwd

                         select c).Count();

                if (n != 1)

                    return Content("-1");

                else

                    return Content(n.ToString());

            }

            return View();



 

        }



    }

}

login方法是用来生成视图,LogOn方法用来判断登录是否成功。注意:要用Request.IsAjaxRequest()来判断数据的传送方式,是否是利用ajax来传送数据。

第三步:创建视图

<h2>用户登录</h2>

<script type="text/javascript">

    $(function () {

        $("#login").click(function () {

            var username = $("#txtName").val();

            var password = $("#txtPwd").val();

            if (username == "")

            { alert("用户名不能为空"); $("#txtName").focus(); return false; }

            else if (password == "")

            { alert("密码不能为空"); $("#txtPwd").focus(); return false; }

            else {

                $.post("LogOn", { usn: username, pwd: password },

                function (data) 

                         {

                             if (data == "-1") alert("用户名或密码错误");

                             else window.location.href = "/Home/Index";

                          }

                       );

                return false;

            }



        });

    });

</script>

<fieldset>

<legend>登录框</legend>

@using (Html.BeginForm())

{

   <label>账号:</label>@Html.TextBox("txtName")

        <br />

   <label>密码:</label>@Html.Password("txtPwd")

        <br />

<input type="submit" id="login" value="登录" />

    }

</fieldset>

利用JQuery获取登录用户名和密码,然后POST给LogOn方法,注意:这里传递过去的参数名必须为usn和pwd,要和LogOn方法里面的参数名一致。

 

你可能感兴趣的:(Ajax)