2016-03-11 4 views
1

У меня есть класс:Отключить обязательный атрибут

public class ShoppingParent : Parent 
{ 

} 

, который реализует этот класс:

public class Parent 
{ 

    public string Firstname { get; set;} 

    public string Lastname { get; set;} 

    public string Address { get; set;} 

    public string Town { get; set;} 

    [Required] 
    public string Password { get; set;} 

} 

Поскольку ShoppingCart реализует Parent класс, то ModelState.Valid всегда ложно, так как Password требуется, но я не Не заполняйте его данными, поскольку он не нужен в классе ShoppingParent.

Я пытаюсь выяснить, как отключить Password в классе ShoppingParent, но сохраните его в классе Parent.

Кто-нибудь знает, как это сделать?

+1

Как насчет перемещения общих частей к интерфейсу и сделать их реализованы? Вы не можете много сделать с наследованием. –

+0

@ UfukHacıoğulları Звучит неплохо, я читал об интерфейсах, но все еще не знаю много о них, поэтому я думаю, что им придется бороться с добавлением интерфейса:/ – KTOV

+0

У вас должно быть либо два разных базовых класса, либо общий интерфейс , – mcy

ответ

2

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

public interface IParent 
{ 
    string Firstname { get; set; } 
    string Lastname { get; set; } 
    string Address { get; set; } 
    string Town { get; set; } 
    string Password { get; set; } 
} 

public class ShoppingParent : IParent 
{ 
    public string Firstname { get; set; } 
    public string Lastname { get; set; } 
    public string Address { get; set; } 
    public string Town { get; set; } 
    public string Password { get; set; } 
} 


public class PasswordRequiredParent : IParent 
{ 
    public string Firstname { get; set; } 
    public string Lastname { get; set; } 
    public string Address { get; set; } 
    public string Town { get; set; } 
    [Required] 
    public string Password { get; set; } 
} 
+0

Отлично! спасибо – KTOV

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