我有一个看起来像这样的视图模型:
public class DeviceConfigViewModel
{
[StringLength(20,ErrorMessage = "Max length of 20 characters",MinimumLength = 3)]
[DisplayName("Device Name")]
public String DeviceName { get; set; }
[DisplayName("Zone Names")]
public Dictionary<string, string> ZoneNames { get; set; }
}
如何将相同的属性([StringLength(20,ErrorMessage = "Max length of 20 characters",MinimumLength = 3)]
)应用于词典/列表中的每个项目/元素?
所以我想将字典中每个项目的Value
限制为最少3个字符长,最多20个字符。
答案 0 :(得分:0)
将字典替换为自定义模型列表,并将验证属性应用于这些模型。
public class ViewModel
{
public List<Pair> ZoneNames { get; set; }
public struct Pair
{
[StringLength(20)]
public string Key { get; set; }
[StringLength(20)]
public string Value { get; set; }
}
}
如果需要,您可以将其转换回字典。
var zoneNames = viewModel.ZoneNames.ToDictionary(p => p.Key, p => p.Value);