ASP.NET MVC数据注释属性从另一个属性值设置的范围

时间:2014-01-09 13:32:12

标签: c# asp.net-mvc data-annotations

您好,我已经关注我的Asp.net MVc模型

TestModel.cs

public class TestModel
{      
public double OpeningAmount { get; set; }

[Required(ErrorMessage="Required")]
[Display(Name = "amount")]
[Range(0 , double.MaxValue, ErrorMessage = "The value must be greater than 0")]
public string amount { get; set; }

}

现在从我的控制器“OpeningAmount”分配。

最后,当我提交表格时,我想检查“金额”必须大于“OpeningAmonut”。所以想要像

一样动态设置范围
[Range(minimum = OpeningAmount , double.MaxValue, ErrorMessage = "The value must be greater than 0")]

我不想只使用Jquery或javascript,因为它只检查客户端,所以我可以动态设置Range属性最小值。

2 个答案:

答案 0 :(得分:8)

最近有一个令人惊奇的工具:动态注释,它被称为JSFiddle

它允许您在

之前做一些不可能的事情
[AssertThat("ReturnDate >= Today()")]
public DateTime? ReturnDate { get; set; }

甚至

public bool GoAbroad { get; set; }
[RequiredIf("GoAbroad == true")]
public string PassportNumber { get; set; }

答案 1 :(得分:1)

没有内置属性可以处理属性之间的依赖关系。

因此,如果您想使用属性,则必须编写自定义属性。

Se here以获取您需要的示例。

您还可以查看dataannotationsextensions.org

另一种解决方案是使用验证库,例如(非常好)FluentValidation