根据另一个属性的值为模型添加必需项?

时间:2016-08-01 13:39:40

标签: c# asp.net-mvc

我的模型中有一个类似于

的字段
[Display(Name = "CompanyType", ResourceType = typeof(Captions), AutoGenerateFilter = true)]
[Lookup(LookupTextField = "TypeForDisplay", LookupEntity = "Type", LookupColumns = new[] { "TypeForDisplay" }, LookupType = LookupType.DropDown)]
public Guid? TypeID{ get; set; }

我想在该属性中添加Required,但不是在所有casses中添加。它取决于模型中另一个属性的值。 最好(最简单)的方法是什么?

3 个答案:

答案 0 :(得分:0)

您可以创建自定义验证程序来完成此操作。

Here是一个关于如何实现它的教程。

答案 1 :(得分:0)

https://foolproof.codeplex.com/

使用上面的链接下载包。添加对包含的.dll文件的引用

等属性的顶部使用
[RequiredIf]
[RequiredIfNot]

答案 2 :(得分:0)

在您的模型上实现IValidatableObject。然后,您可以实现Validate方法来执行一种您需要的自定义验证。

以下是http://weblogs.asp.net/scottgu/class-level-model-validation-with-ef-code-first-and-asp-net-mvc-3

的示例

这里还有一个指向RequiredIf实现的链接,该实现同时具有服务器和客户端验证。 RequiredIf Conditional Validation Attribute