我有几个模型类,如下:
public class MyModelBase
{
public string Name { get; set; }
}
public class MyModel : MyModelBase
{
public string SomeOtherProperty { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
MyModel如何在Name属性中添加[Required]属性?
Jus*_*ner 40
将父类中的属性声明为virtual:
public class MyModelBase
{
public virtual string Name { get; set; }
}
public class MyModel : MyModelBase
{
[Required]
public override string Name { get; set; }
public string SomeOtherProperty { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
或者你可以使用MetadataType来处理验证(只要你在谈论DataAnnotations ......否则你会被上面的例子所困扰):
class MyModelMetadata
{
[Required]
public string Name { get; set; }
public string SomeOtherProperty { get; set; }
}
[MetadataType(typeof(MyModelMetadata))]
public class MyModel : MyModelBase
{
public string SomeOtherProperty { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
Kev*_*vin 35
尝试使用元数据类.它是一个单独的类,使用允许您间接向模型类添加数据注释的属性进行引用.
例如
[MetadataType(typeof(MyModelMetadata))]
public class MyModel : MyModelBase {
... /* the current model code */
}
internal class MyModelMetadata {
[Required]
public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
小智 16
我注意到这些答案中没有一个实际上正确地调用了基本Name属性.覆盖应该写如下所示,以便您没有新属性的单独值.
public class MyModelBase
{
public virtual string Name { get; set; }
}
public class MyModel : MyModelBase
{
[Required]
public override string Name { get { return base.Name; } set { base.Name = value; }
public string SomeOtherProperty { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24402 次 |
| 最近记录: |