首页 新闻 赞助 找找看

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

0
悬赏园豆:5 [已解决问题] 解决于 2012-10-23 22:05

模型:

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 | 菜鸟二级 | 园豆:321
提问于:2012-10-22 09:37
< >
分享
最佳答案
0

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

收获园豆:5
Qlin | 老鸟四级 |园豆:2403 | 2012-10-22 10:30

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

Meen | 园豆:321 (菜鸟二级) | 2012-10-22 10:48
其他回答(2)
0

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

skin33 | 园豆:110 (初学一级) | 2012-10-22 15:58

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

支持(0) 反对(0) Meen | 园豆:321 (菜鸟二级) | 2012-10-22 19:21
1
 [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) Meen | 园豆:321 (菜鸟二级) | 2013-03-30 17:49
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册