c#asp mvc ErrorMessage应包含另一个变量/属性值

时间:2013-11-05 06:58:33

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

我想在其中创建一个包含另一个变量或属性值的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 in Data Annotation Validation Attributes 没关系,但也许有一种解决方法......

1 个答案:

答案 0 :(得分:4)

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

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

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

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

如果您有疑问,请告诉我。