非EF注册登录
第一步:创建LoginController,添加Index视图
@using (Ajax.BeginForm("CheckLogin", "Login", new { }, new AjaxOptions() { HttpMethod = "post", OnSuccess = "afterLogin", LoadingElementId = "msg" }, new { id = "loginForm" })) { <table> <tr> <td>用户名</td> <td><input type="text" name="username" /></td> </tr> <tr> <td>密码</td> <td><input type="text" name="pwd" /></td> </tr> <tr> <td>验证码</td> <td> <input type="text" name="vCode" /> <img src="/Login/ShowVerificateCode?id=1" id="vCodeImage" /><a href="javascript:;" onclick="changeVerificateCode();">看不清</a><br /> </td> </tr> <tr> <td colspan="2"> <input type="submit" name="loginBtn" value="登录" /> <div id="msg" style="display:none">正在登录,请稍后....</div> </td> </tr> </table> }
第二步:在控制器写返回验证码那个方法和校验登录
public ActionResult ShowVerificateCode() { string vCode = Common.VerificateCode.CreateValidateCode(4); Session["vCode"] = vCode; byte[] buffer = Common.VerificateCode.CreateValidateGraphic(vCode); return File(buffer,"image/jpeg"); } public ActionResult CheckLogin() { string verificateCode = Session["vCode"] == null ? string.Empty : Session["vCode"].ToString(); if (string.IsNullOrEmpty(verificateCode)) return Content("no:验证码错误"); Session["vCode"] = null; string code = Request["vCode"]; if (!code.Equals(verificateCode, StringComparison.InvariantCultureIgnoreCase)) return Content("no:验证码错误"); string username = Request["username"]; string pwd= Request["pwd"]; Model.UserInfo userInfo = UserInfoService.LoadEntity(username,pwd); if (userInfo == null) return Content("no:用户名或密码错误"); return Content("yes:登录成功"); }
第三步:数据层代码
public List<Model.UserInfo> GetList() { string sql = "select * from UserInfo"; DataTable dt = SqlHelper.GetDataTable(sql, CommandType.Text); List<Model.UserInfo> list = null; if (dt.Rows.Count>0) { list = new List<Model.UserInfo>(); Model.UserInfo userInfo = null; foreach (DataRow row in dt.Rows) { userInfo = new Model.UserInfo(); LoadEntity(userInfo,row); list.Add(userInfo); } } return list; } public Model.UserInfo LoadEntity(string username, string pwd) { string sql = "select * from UserInfo where UName=@UName and UPwd=@UPwd"; SqlParameter[] pars = { new SqlParameter("@UName", SqlDbType.NVarChar, 32) { Value = username }, new SqlParameter("@UPwd", SqlDbType.NVarChar, 16) { Value = pwd } }; DataTable dt = SqlHelper.GetDataTable(sql, CommandType.Text,pars); Model.UserInfo userInfo = null; if (dt.Rows.Count>0) { userInfo = new Model.UserInfo(); LoadEntity(userInfo, dt.Rows[0]); } return userInfo; } public List<Model.UserInfo> GetPageList(int pageStart, int pageEnd) { string sql = "select * from (select *,ROW_NUMBER() over(order by id) as num from UserInfo) as t where t.num>=@pageStart and t.num<=@pageEnd"; SqlParameter[] pars = { new SqlParameter("@pageStart",SqlDbType.Int){Value=pageStart},new SqlParameter("@pageEnd",SqlDbType.Int){Value=pageEnd} }; DataTable dt = SqlHelper.GetDataTable(sql, CommandType.Text,pars); List<Model.UserInfo> list = null; if (dt.Rows.Count > 0) { list = new List<Model.UserInfo>(); Model.UserInfo userInfo = null; foreach (DataRow row in dt.Rows) { userInfo = new Model.UserInfo(); LoadEntity(userInfo, row); list.Add(userInfo); } } return list; } public int GetRecordCount() { string sql = "select count(*) from UserInfo"; return Convert.ToInt32(SqlHelper.ExecuteScalar(sql, CommandType.Text)); } private void LoadEntity(Model.UserInfo userInfo, DataRow row) { userInfo.UName = row["UName"] != DBNull.Value ? row["UName"].ToString() : string.Empty; userInfo.UPwd = row["UPwd"] != DBNull.Value ? row["UPwd"].ToString() : string.Empty; userInfo.SubTime = Convert.ToDateTime(row["SubTime"]); userInfo.Remark = row["Remark"] != DBNull.Value ? row["Remark"].ToString() : string.Empty; userInfo.ModifiedOn = Convert.ToDateTime(row["ModifiedOn"]); userInfo.DelFlag = Convert.ToInt16(row["DelFlag"]); userInfo.Sort = row["Sort"] != DBNull.Value ? row["Sort"].ToString() : string.Empty; }