3

我想创建一个包含另一个变量或属性值的 ErrorMessage。我想保持简单。到目前为止,这段代码显示了 String.Format 参数的错误。实现它的最佳方法是什么:

    public class MyClass
    {
        [RequiredIf("IsRequired", true, ErrorMessage=String.Format("The 'something' ({0}) is required because of: {1}", Something, CustomExplanation)]
        public string Something { get; set; }

        [Required]
        public bool IsRequired { get; set; }

        [Required]
        [StringLength(200, MinimumLength=20)]
        public string CustomExplanation { get; set; }
    }

我已经阅读了这个问题和答案:数据注释验证属性中的 string.Format 没关系,但也许有一种解决方法......

4

1 回答 1

4

我对你的建议是使用 FluentValidator。这是一个非常好的图书馆来达到你的目标。

链接 - http://fluentvalidation.codeplex.com/

您可以使用以下代码解决您的问题:

RuleFor(m => m.Something).When(m => m.IsRequired).WithMessage("Your message here.");

如果您有任何问题或有任何疑问,请告诉我。

于 2014-01-02T11:03:51.410 回答