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);
Я надеюсь, что это решит проблему.