是这样的 我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" });
}
请问该怎样处理这样的问题??
你应该是在UserPwd上加了validation,验证这个string长度在6-10之间,ef在保存的时候会调用这个model的isvlid()(因为你对这个属性进行重新赋值了),当然就报错了。
我建议你可以专门弄一个ViewModel用来交互,不要跟实体混在一起。
MVC里的 M(odel)不应该是后台业务系统的 Model,应该只是前台使用的Model,也就是说,作为一个用户信息类User,应该是后台数据的一个代理,你 在更新的时候,不应该去修改Model里的这个类的值。
如果你一定要这样,那么把验证信息取消或者设置不能低于6位即可。