首页 新闻 会员 周边

MVC EF db.SaveChanges()问题

0
悬赏园豆:30 [已解决问题] 解决于 2013-01-22 18:12

是这样的 我view里面验证用户输入的密码为6到10位

然后我在action里面把密码进行md5加密保存到数据库,然后就报错了,提示密码要6-10位

代码片段为:

if (ModelState.IsValid)
{
var md5UserPwd = user.UserPwd.MD5Hash();
user.UserPwd = md5UserPwd;
db.User.Add(user);
int result = db.SaveChanges();
return Json(new { message = "Sucess" });
}

请问该怎样处理这样的问题??

小白白小的主页 小白白小 | 初学一级 | 园豆:113
提问于:2012-06-14 16:50
< >
分享
最佳答案
0

你应该是在UserPwd上加了validation,验证这个string长度在6-10之间,ef在保存的时候会调用这个model的isvlid()(因为你对这个属性进行重新赋值了),当然就报错了。

我建议你可以专门弄一个ViewModel用来交互,不要跟实体混在一起。

收获园豆:20
today4king | 老鸟四级 |园豆:3499 | 2012-06-14 16:59
其他回答(1)
0

 MVC里的 M(odel)不应该是后台业务系统的 Model,应该只是前台使用的Model,也就是说,作为一个用户信息类User,应该是后台数据的一个代理,你 在更新的时候,不应该去修改Model里的这个类的值。

 

如果你一定要这样,那么把验证信息取消或者设置不能低于6位即可。

收获园豆:10
无之无 | 园豆:5095 (大侠五级) | 2012-06-14 17:10
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册