2015-05-05 8 views
0

Вот модель для таблицы.Entity Framework - Обновление записей показывает ошибку аннотаций

public class Master 
    {   
     public int Id { get; set; } 
     public string EmailId { get; set; } 
     public string UniqueCode { get; set; } 
.... 
     [Required]   
     public string Password { get; set; } 
     [Required] 
     [NotMapped] 
     [System.ComponentModel.DataAnnotations.Compare("Password", ErrorMessage = "The password and confirmation password do not match.")] 
     public string ConfirmPassword { get; set; } 

    } 

Когда я пытаюсь обновлять вышеупомянутую запись с помощью следующего кода, я получаю Validation ОШИБКИ The password and confirmation password do not match., The confirmation password is required..

Свойство пароля подтверждения не отображается. Как настроить аннотации при обновлении записи? : -

var data = ctx.tblMaster.Where(m => m.EmailId == emailId).Select(m => m).SingleOrDefault(); 
        data.UniqueCode = UniqueCode; 

        ctx.tblMaster.Attach(data); 
        ctx.Entry(data).State = EntityState.Modified; 
        ctx.SaveChanges(); 

ответ

0

Это можно сделать довольно просто передний конец. Валидация, которая происходит, выполняется на основе атрибута данных html5. Удалите атрибуты данных из входного элемента, и валидация перестанет функционировать.

можно условно удалить поля в модели состояния из контроллера, как этот

Пример кода:

if (Request.IsAuthenticated) 
    { 
... 

// We don't need to validate user fields if user is logged in. 
ModelState.Remove("CommenterName"); 
ModelState.Remove("Email"); 
} 
+0

Этот код написан на сайт Забыли пароль, Так в представлении я просто по электронной почте вариант Id Textbox .. – Anup

+0

Вы можете условно удалить поля в состоянии модели с контроллера, как, пожалуйста, см. Мой обновленный код – BSG

+0

Как вы можете видеть из моего кода ... Я прохожу только по электронной почте на слой данных, а ModelState не участвует ... & я получаю данные из db с условием электронной почты, а затем я обновляю его ... Так есть ли другое решение? – Anup

Смежные вопросы