我想在其中创建一个包含另一个变量或属性值的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 没关系,但也许有一种解决方法......
答案 0 :(得分:4)
我的建议是使用FluentValidator。这是达到目标的非常好的图书馆。
链接 - http://fluentvalidation.codeplex.com/
您可以使用以下代码解决问题:
RuleFor(m => m.Something).When(m => m.IsRequired).WithMessage("Your message here.");
如果您有疑问,请告诉我。