【问题标题】:validation filter for inherited property mvc model继承属性 mvc 模型的验证过滤器
【发布时间】:2014-09-21 02:15:04
【问题描述】:

我有一个从实体数据框架导入的模型 公共课的人 { 公共字符串名称 {get;放;} }

以及从人继承的视图模型

public class personviewmodel:person
{
    public int Applied {get; set;}
}

我使用 personviewmodel 作为我视图中的模型。我想在不修改生成的“人”类的情况下将错误验证(数据注释)添加到“名称”属性。你能帮忙拿下这个吗?

【问题讨论】:

    标签: asp.net-mvc validation inheritance filter


    【解决方案1】:

    您可以按如下方式实施验证。但是这里的事情你不是使用人的对象继承人。希望这会对你有所帮助。

     public class Person 
     { 
       [Required(ErrorMessage = "Message")]
       public string Name {get; set;} 
     }
    
     public class personviewmodel
     {
       public int Applied {get; set;}
       public Person Person {get; set;}
     }
    

     public class Person 
     { 
       public string Name {get; set;} 
     }
    
     public class Personviewmodel : Person
     {
       public int Applied {get; set;}
    
       [Required(ErrorMessage="Name is required")]
       public new string Name {get; set;} 
     }
    

     public class Person 
     { 
       public virtual string Name {get; set;} 
     }
    
     public class Personviewmodel : Person
     {
       public int Applied {get; set;}
    
       [Required(ErrorMessage="Name is required")]
       public override string Name {get; set;} 
     }
    

    【讨论】:

    • 在这种情况下,您需要在 Person 类中将 Name 属性标记为虚拟,然后您才能使用它。请参阅答案中的更新。
    猜你喜欢
    • 1970-01-01
    • 2012-09-29
    • 2011-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多