加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc-2 – MVC2:具有两个字段依赖性的验证(数据注释)

发布时间:2020-12-16 09:33:41 所属栏目:asp.Net 来源:网络整理
导读:例: 我们有一个条件字段. 此条件字段是一个单选按钮,其中包含以下两个值“是”和“否”. 让我们说这个radiobutton的名字是“AAA”. 仅当另一个单选按钮字段“BBB”设置为“是”时,才应显示该条件字段“AAA”. (单选按钮“BBB”的值也是“是”而不是“). 但
例:
我们有一个条件字段.
此条件字段是一个单选按钮,其中包含以下两个值“是”和“否”.
让我们说这个radiobutton的名字是“AAA”.

仅当另一个单选按钮字段“BBB”设置为“是”时,才应显示该条件字段“AAA”. (单选按钮“BBB”的值也是“是”而不是“).

但条件字段“AAA”应显示为NO预设值,表示首次显示该字段时应设置“是”或“否”.

该问题基于以下要求:当(非条件)字段“BBB”被设置为“是”时,仅需要条件字段“AAA” – 并且当字段“BBB”被设置为“否”时不需要”.

(听起来,我没有听到关于if语句的任何内容,或者?但是继续阅读并继续阅读…)

相信我,当我们使用“Modelstate”时,解决这个问题对我来说不是问题 – 但我们在这里谈论的验证(数据注释)如下所示:

public class Input1FormModel 
{
     [Required(ErrorMessageResourceName="Error_Field_AAA_Empty",ErrorMessageResourceType=typeof(Resources.MyDialog))]
     public int AAA { get; set; }
}

我完全理解这些代码行 – 我相信;-)

//property limits
public int UpperBound { get { return DateTime.Now.Year; } }
public int LowerBound { get { return 1900; } }

[NotNullValidator]
[PropertyComparisonValidator("LowerBound",ComparisonOperator.GreaterThan)]
[PropertyComparisonValidator("UpperBound",ComparisonOperator.LessThanEqual)]
public int? XYZ { get; set; }

但是,如何解决上述依赖性(AAA< -BBB)? 将“return DateTime.Now.Year;”更改为首先检查另一个字段并返回true或false的函数调用?但是如何获取其他字段的值呢?

解决方法

您可能需要使用IDataErrorInfo.

见this question,我回答了这个问题:

查看IDataErrorInfo和我问的关于IDataErrorInfo vs. DataAnnotations的这个问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读