请考虑以下事项:
public enum HtmlFieldType {
PlainText,
RichText,
Number,
DateTime,
Radio,
Checkbox,
Unknown
}
public class MySimpleModel {
public HtmlFieldType FieldType { get; set; }
public bool IsMandatory { get; set; }
public string[] Values { get; set; }
}
我想要动态地根据public string[] Values
的值在FieldType
属性上设置属性。像DataType,IsRequired和AllowHtml之类的东西。具体来说,如果FieldType设置为RichText,则Values应使用AllowHtmlAttribute。
我已经使用验证器提供程序以及关联的元数据提供程序进行了探索。在这两种情况下,如何询问模型的另一个属性并不明显。我在正确的道路上吗?这让我困扰了几个小时,所以任何帮助都会非常感激!
编辑:我也尝试过实现IValidatableObject,但我理解MVC在触发Validate函数之前处理属性验证。如果我的Values属性包含HTML,它将在点击Validate之前停止执行。