【发布时间】:2016-05-31 11:29:05
【问题描述】:
型号:
public class Person : IValidatableObject
{
public Address ResidentialAddress { get; set; }
public Address PostalAddress { get; set; }
}
public class Address
{
public string Address1 { get; set; }
}
在模型中:
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
if (string.IsNullOrWhiteSpace(PostalAddress.Address1))
{
yield return
new ValidationResult("Postal address is required",
new[] { nameof(PostalAddress.Address1) });
}
}
视图:(个人视图中地址的部分视图)
@Html.ValidationMessageFor(m => m.Address1)
在 html 中,名称为 PostalAddress.Address1 和 ID PostalAddress_Address1
不幸的是nameof(PostalAddress.Address1) 只是返回Address1。
我尝试用PostalAddress.Address1 和PostalAddress_Address1 替换它,但无法显示错误。
秘诀是什么?
【问题讨论】:
-
你的模型需要实现
IValidatableObject -
Person 实际上是一个视图模型,它被简化为问题。验证有效,我只想知道如何显示错误...
标签: asp.net-mvc validation asp.net-mvc-4