日期:2014-05-17  浏览次数:20424 次

MVC3 关于修改时验证的问题
难道我修改一个字段也要把其它字段都补全吗?或者只能关掉验证再开启?
 例如我就修改密码这个字段,有其它方法的吗?
  User_Info user = da.User_Info.Find(u.Uid);
   user.Password = DecSecurity.Md5(model.NewPassword);
   da.SaveChanges();

报错:
{"对一个或多个实体的验证失败。有关详细信息,请参见“EntityValidationErrors”属性。"}

mvc

------解决方案--------------------
引用:
难道我修改一个字段也要把其它字段都补全吗?或者只能关掉验证再开启?
 例如我就修改密码这个字段,有其它方法的吗?
  User_Info user = da.User_Info.Find(u.Uid);
   user.Password = DecSecurity.Md5(model.NewPassword);
   da.SaveChanges();

报错:
{"对一个或多个实体的验证失败。有关详细信息,请参见“EntityValidationErrors”属性。"}
加密后密码长度变得很长  可能你数据库里密码字段的长度问题吧
------解决方案--------------------
调试看一下什么错误就行了!  估计是数据库里密码字段长度太短了
------解决方案--------------------
http://blog.csdn.net/jys1216/article/details/12128321

提交的实体包含验证导致出现问题,那么保存可以先关闭验证

或者修改的提交实体为表单上可编辑的视图状态,字段对应,建立单独的编辑实体Model,后台一般是先验证提交实体的有效性,然后再进入库操作
------解决方案--------------------
错误提示是你的实体的属性验证错误..... 可能填写的字符串的长度 太长了

你可以这样:修改一条数据的里面某个字段的时候:1,根据id把该条数据取出来  2. 设置该实体的“字段值=你要修改的值”  3. 把实体传回数据库更新
------解决方案--------------------
引用:
Quote: 引用:

http://blog.csdn.net/jys1216/article/details/12128321

提交的实体包含验证导致出现问题,那么保存可以先关闭验证

或者修改的提交实体为表单上可编辑的视图状态,字段对应,建立单独的编辑实体Model,后台一般是先验证提交实体的有效性,然后再进入库操作

关闭验证会不会造成其它不良后果
User_Info作为Model,属性不要加数据注解,如[Required]等。可以创建一个ViewModel,例如:注册时候创建的一个UserViewModel 这时候加上数据注解,用于验证用户提交的表单。
------解决方案--------------------
你也可以手动写SQL语句Update User_Info。去db的connectionstring 然后 var conn = new SqlConnection(cs); .........