C# 如何在MVC中验证属性而不使用属性

C# 如何在MVC中验证属性而不使用属性,c#,asp.net-mvc,C#,Asp.net Mvc,我的应用程序的许多部分都使用了一个实体。我需要为它的一个属性添加验证。问题是我不需要在应用程序的每个部分都验证这个属性 我考虑过使用自定义属性,但是我不确定如何绕过中的验证(因为它不依赖于其他属性,它实际上取决于我使用它的应用程序的部分) 我考虑使用一个接口,并有两个实现——一个具有此属性,一个不具有此属性。但是在我的应用程序中有太多的耦合,这可能是太多的工作 最终,我可以创建一个静态类来验证它。但我想知道是否会有一个更MVCish的选择?谢谢 是解决此问题的好方法。您可以创建一个规范类来验证您

我的应用程序的许多部分都使用了一个实体。我需要为它的一个属性添加验证。问题是我不需要在应用程序的每个部分都验证这个属性

我考虑过使用自定义属性,但是我不确定如何绕过中的验证(因为它不依赖于其他属性,它实际上取决于我使用它的应用程序的部分)

我考虑使用一个接口,并有两个实现——一个具有此属性,一个不具有此属性。但是在我的应用程序中有太多的耦合,这可能是太多的工作

最终,我可以创建一个静态类来验证它。但我想知道是否会有一个更MVCish的选择?谢谢

是解决此问题的好方法。您可以创建一个规范类来验证您的属性,并使用此规范验证您希望在何处真正执行验证的属性

下面是此模式的一些C#库:


派生类型可以隐藏属性(
new
)并添加属性。MVC与验证无关。MS MVC框架支持通过属性进行验证,使开发人员更容易进行验证。在你的例子中,一个验证器类应该是一个简单的选项,看起来你已经在这么做了。我认为这里可以找到“简单”的方法,要么使用视图模型,这样你就可以有一个在视图中使用的带有验证的类,然后是不需要验证的实体,或者听从@asawyer的建议。