在之前注册的时候,我创建用户表的时候同时创建了一个用户的信息表,不过这个表中是没有数据代码如下:
因为这样方便我在后面修改个人信息的时候就不用创建表再修改,而可以直接修改,提高了修改时的效率,然后不管自己的信息里面有没有数据都将它回填给页面
当我点击:个人信息
就会执行回填效果
回填代码如下:
Html
其中获取用户ID是用的form表单的获取方法,之前就将用户ID隐藏在页面中。
再使用post请求传输数据。
loadDatatoForm是回填数据的一个方法。
控制器:
这里直接用的session中的用户ID,因为在登录的时候用户的ID就传进了session中,以方便后面使用。
然后便是一个简单的查询,这里用了try catch 预防回填时出错,然后再将查询的数据返回给页面
这里将session中的用户ID转换成字符串,方便查询时比较
然后便是修改。
先是获取用户输入的数据,然后判断用户是否输入数据
再使用post请求传输数据
html代码如下:
控制器:
先获取页面传来的数据
然后判断是否有相同数据
然后修改成用户输入的数据
整给过程都使用的try catch
其中核心代码如下:
//检查数据是否重复
int oldCount = (from tbMyselfDetail in myModels.PW_MyselfDetail
where tbMyselfDetail.UserID != pwMyselfDetail.UserID
&& tbMyselfDetail.Cellphone == pwMyselfDetail.Cellphone
select tbMyselfDetail).Count();
if (oldCount == 0)
{
//根据ID查询数据
PW_MyselfDetail dbMyselfDetail = (from tbMyselfDetail in myModels.PW_MyselfDetail
where tbMyselfDetail.UserID == intUserID
select tbMyselfDetail).Single();
//更改数据
dbMyselfDetail.MyselfName = pwMyselfDetail.MyselfName;
dbMyselfDetail.Cellphone = pwMyselfDetail.Cellphone;
dbMyselfDetail.Address = pwMyselfDetail.Address;
dbMyselfDetail.Remark = pwMyselfDetail.Remark;
//获取和实质对象实体的状态=EntityState的枚举值
myModels.Entry(dbMyselfDetail).State = EntityState.Modified;
if (myModels.SaveChanges() > 0)
{
returnJson.State = true;
returnJson.Text = "修改成功^-^";
}
else
{
returnJson.State = false;
returnJson.Text = "修改失败";
}
}
然后返回数据,这样信息修改就完成了