如何实现登录进入页面回填个人信息
当我们在一些软件上注册或者登录信息的时候,还有很多信息是没有填写完整的,而当我们完善个人信息之后,在我们再次登录那个软件的时候,个人信息已经回填到页面上了,这个是怎么实现的呢?你有没有想过呢?接下来我用一个例子来向你展示一下该如何实现的。
先来看一下效果图:
登录页面进行登录,个人信息的回填:
页面我就不在这里显示了,和你们展示实现功能的代码。
我们在写登录页面的时候,就设置session来保存用户ID来记住用户信息。
//设置session
Session[“UserID”] = dbUser.UserID; // 传递 UserID
现在我们整理一下思路:既然我们已经把用户信息保持在session中了,所以我们只需要把保存在session中的用户信息给提取出来,然后进行查询,查询是否又该用户的信息,用于把数据回填表单。
来看一下js的代码:
//回填信息
function huitian() {
//获取表单隐藏的用户ID
var UserID = $('#fmXinxi [name="UserID"]').val();
//提交表单数据
$.post("/SystemChristmasMain/SysChristmasMain/SelectUserID",
{
UserID: UserID
}, function (data) {
//回填表单
$("#UMyselfName").val(data.MyselfName); //用户名
$("#UCellphone").val(data.Cellphone); //手机号
$("#UAddress").val(data.Address); //地址
$("#URemark").val(data.Remark); //备注
});
}
通过post请求来提交表单数据,其中的回填表单有两种写法,一种是不需要用到插件的(写法麻烦),另一种需要用到插件(写法简单)
控制器:
我们需要把保存在session中的用户ID(UserID)转化为int类型。
//将UserID转化为int类型
int intUserID = Convert.ToInt32(Session[“UserID”].ToString());
public ActionResult SelectUserID(int UserID)
{
//将UserID转化为int类型
//int intUserId = Convert.ToInt32(Session["UserID"].ToString());
try
{
//查询登录进来的用户信息,用于回填用户数据
PW_MyselfDetail pwMyselfDetail = (from tbMyselfDetail in myModels.PW_MyselfDetail
where tbMyselfDetail.UserID == UserID
select tbMyselfDetail).Single();
return Json(pwMyselfDetail, JsonRequestBehavior.AllowGet);
}
catch (Exception e)
{
Console.WriteLine(e);
return Json(null, JsonRequestBehavior.AllowGet);
}
}
为什么用try()catch(){}呢? 因为防止UserID的数据为空而回填失败,页面没有报错,就不知到错在哪个方面,而用try()catch(){}可以知道错在哪个方面,这样就好解决问题了。
看完了是不是觉得很简单,只要你在做登录的时候设置session来保存用户信息,然后回填数据,过程中记得把session中的ID转化为int类型就行了,别想着有多难,自己尝试一下,多动动脑子也可以想到一二的,所以要多开发一下自己。