Annotations de données MVC3 attribut Obligatoire

J'ai le Modèle (Utilisateur) ci-dessous, je l'utilise pour ajouter de nouveaux utilisateurs et de mettre à jour les utilisateurs existants.
Quand je suis à l'ajout d'un nouvel utilisateur, il est nécessaire de saisir le nom d'utilisateur et le mot de passe, et quand je suis à jour, il est nécessaire de saisir uniquement le nom d'utilisateur, car il n'est pas permis de changer le mot de passe. Là est le problème, l'ajout d'un nouvel utilisateur tout fonctionne ok parce que j'entrez le nom et le mot de passe, les valeurs ModelState.IsValid retourne vrai, mais lors de la mise à jour d'un utilisateur, il n'y a pas d'entrée pour le mot de passe, donc il ont toujours la valeur null, ce qui rend la ModelState.IsValid renvoie faux tout le temps.
Est-il possible d'utiliser le même modèle, même si dans le Ajouter voir le mot de passe est requis et dans la mise à Jour de la Vue, il ne l'est pas?
s'il vous plaît, des suggestions?

     public class User {

        public int ID { get; set; }

        [Display(Name = "Nome do Usuário")]
        [Required(ErrorMessage = "Digite o Nome do Usuário.")]
        public string name { get; set; }

        [Display(Name = "Senha")]
        [Required(ErrorMessage = "Digite a Senha.")]
        public string password { get; set; }

    }



public ActionResult Add()
        {
            return View();
        }

      [HttpPost]
            public ActionResult Add(User user)
            {
                UsuariosViewModel viewModel = new UsuariosViewModel();


                if (ModelState.IsValid)
                {
                    viewModel.Msg = new AdmUsuarios().CadastraUsuario(user);
                }
                return View(viewModel);
            }



    public ActionResult Update(int id)
            {
                UsuariosViewModel viewModel = new UsuariosViewModel();

            using (var dataContext = new DBEntities()) 
            {
                Repository<User> repository = new Repository<User>(dataContext);
                viewModel.User = repository.GetById(id);
            }

                return View(viewModel);
            }

        [HttpPost]
        public ActionResult Update(User user, int id)
        {          
            UsuariosViewModel viewModel = new UsuariosViewModel();

            if (ModelState.IsValid)
            {
                viewModel.Msg = new AdmUsuarios().AlteraUsuario(user, id);
            }
            return View();
        }

OriginalL'auteur Sah | 2013-02-28