ASP.NET MVC UpdateModel исключает исключение: "Модель не может быть обновлена"

Я пытаюсь обновить простую модель в MVC, но ее не работает, она выдает исключение, говорящее, что модель не может быть обновлена:

      [HttpPost]
        public ActionResult SignIn([Bind(Exclude="TxtEmail")]Usuarios usuario,FormCollection fc)
        {
            try
            {
                UsuariosModel userModel = new UsuariosModel(usuario);
                userModel.Usuarios.TxtEmail = "[email protected]";

                UpdateModel(userModel);

                if (ModelState.IsValid)
                {
                 [...]
                }
                [...]
        }

Это модель:

[Required(ErrorMessage="**O email é requerido")]
[RegularExpression("^[a-z0-9_\\+-]+(\\.[a-z0-9_\\+-]+)*@[a-z0-9-]+(\\.[a-z0-9-]+)*\\.([a-z]{2,4})$",ErrorMessage="**Email Inválido")]
public string TxtEmail
{
    get { return this.txt_email; }
    set { this.txt_email = value; }
}

Как я могу использовать этот метод "UpdateModel"?

Ответы

Ответ 1

Возможно, ваши данные не соответствуют проверке.

Я бы попробовал TryUpdateModel.

Метод TryUpdateModel похож на метод UpdateModel, за исключением того, что метод TryUpdateModel не генерирует исключение InvalidOperationException, если обновленное состояние модели недопустимо.

Ответ 2

Посмотрите в записи ModelState (доступно с помощью this.ModelState).

ModelState содержит запись для каждого свойства и ошибки для этого свойства в модели, которую вы пытаетесь связать. Скорее всего, вы передаете неправильный тип данных в сообщении или получаете действие.

Ответ 3

Использование:

UpdateModel<UsuariosModel>(userModel);

Я надеюсь, что это решит проблему.