C# 如何根据某些条件向模型类添加属性

C# 如何根据某些条件向模型类添加属性,c#,asp.net,asp.net-mvc,entity-framework,C#,Asp.net,Asp.net Mvc,Entity Framework,我想根据一些条件向模型类属性添加属性 例如: 假设以下EmployeeModel类: public class EmployeeModel { public int EmployeeId { get; set; } [Required] public string EmployeeName { get; set; } } 我想根据某些条件在EmployeeName上添加必需的属性 如何实现该功能?如果您的意思是验证(必填,也将字段设置为非空),则可以实现Custom

我想根据一些条件向模型类属性添加属性

例如:

假设以下EmployeeModel类:

public class EmployeeModel
{
    public int EmployeeId { get; set; }

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

}
我想根据某些条件在EmployeeName上添加必需的属性

如何实现该功能?

如果您的意思是验证(必填,也将字段设置为非空),则可以实现CustomValidationAttribute。验证上下文调用对属性是有效的,您可以在那里执行所需的所有检查。您可以直接从MSDN中看到一个示例


使用类似条件验证属性的
[RequiredIf]
,这是一种开箱即用的思维方式。看看。。。谢谢你的回答。我试图实现RequiredIf,但RequiredIf接受另一个依赖属性,我想实现一些自定义代码。类似这样的事情:[RequiredIfTrue(MyCustomClass.MyCustomeBoolMethod())]@AmrDeif,这是不可能的。只需使用带有
布尔属性的视图模型,该属性是基于
MyCustomeBoolMethod()
在控制器中设置的,谢谢您的回复。实际上,这种方法的问题在于,EmployeeModel的验证总是在调用Post操作之后,在检查(Model.IsValid)时在服务器上发生,这是我无法接受的。在到达post操作之前,我需要在客户端进行验证。您也可以在客户端进行相同的自定义验证!?再多解释一下你的客户端正在使用什么会很有帮助。谢谢bubi和amuz,这非常有帮助