MVC4中如何跳过对模型中某个属性的验证?

0
悬赏园豆:5 [已解决问题] 浏览: 534次

模型:

1     public class User
2     {
3         [Required(ErrorMessage="用户名不能为空")]
4         public string UserName { get; set; }
5         [Required(ErrorMessage="密码不能为空")]
6         public string Password { get; set; }
7     }

控制器中的方法:

        [HttpPost]
        public ActionResult Login(Users user)
        {
            if (ModelState.IsValid)
            {
                //登录代码省略
                return View("Index");
            }
            return View();
        }
        [HttpPost]
        public ActionResult Create(Users user)
        {
            if (ModelState.IsValid)
            {
                user.Password="admin";
                db.Users.Add(user);
                db.SaveChanges();
                return View("Index");
            }
            return View();
        }

问题:我在新建用户的时候用的默认密码,不用在视图中输入,从视图传过来的数据里密码是空的通不过验证,因为登录和新建用的同一个模型,[Required]不能少,怎么解决?有什么语句是在视图中给Password赋值吗?


 

Meen的主页 Meen | 菜鸟二级 | 园豆:314
提问于:2012-10-22 09:37

问题补充:

除了加隐藏控件外,有没有其它办法?

有没有直接跳过不验证密码的方法?

 
最佳答案
0

加个 隐藏控件,给个默认值

收获园豆:5
回复 | Qlin | 小虾三级 |园豆:1692 | 2012-10-22 10:30

能不能举个例子,新手,想到这么做了,可是不会

支持(0) 反对(0) 回复 | Meen | 园豆:314 (菜鸟二级) | 2012-10-22 10:48
其他回答(2)
0

加个参数 什么的  如果是注册 就跳过

 
回复 | LonelyPlagiarism | 园豆:115 (初学一级) | 2012-10-22 15:58 |

什么参数,给代码出来,我是新手

支持(0) 反对(0) 回复 | Meen | 园豆:314 (菜鸟二级) | 2012-10-22 19:21 |
0
 [HttpPost]
        public ActionResult Create(Users user)
        {

ModelState.Remove(“Password”); //加上这句就行了

if (ModelState.IsValid) { user.Password="admin"; db.Users.Add(user); db.SaveChanges(); return View("Index"); } return View(); }

 

 
回复 | 寒羽枫 | 园豆:202 (菜鸟二级) | 2013-03-12 22:04 |

非常感谢!

支持(0) 反对(0)