我正在使用Html.ValidationMessageFor()方法在表单上显示验证消息。对于大多数表单字段,我收到相应的错误消息,除了几个字段。一个是“出生日期”字段,它是表单上的文本框,另一个是“州”字段,它是与美国所有州的下拉列表。对于这两个字段,我得到'DateOfBirth字段是必需的'。并且'国家字段是必需的。'
我启动了反射器并查看了Html.ValidationMessageFor()静态方法中的代码,看起来这些方法似乎没有添加此消息。
此消息可能来自的任何想法&如何解决?
更新 添加了型号代码......基本上我使用的是CSLA的精简版。业务规则在创建时添加到类中,并且触发一次,调用适当的方法。基本上,'rule.ErrorMessage'是ValidationMessageFor列出错误时应该显示的内容。它适用于所有其他属性,除了DateofBirth&国家财产。
型号代码
属性:的
public Guid UserId { get; set; }
public Guid PatientId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
public string Phone1 { get; set; }
public string Phone2 { get; set; }
public string Address1 { get; set; }
public string Address2 { get; set; }
public string City { get; set; }
public States State { get; set; }
public string Zip { get; set; }
public DateTime DateOfBirth { get; set; }
public string EmergencyName { get; set; }
public string EmergencyPhone { get; set; }
public string EmergencyRelation { get; set; }
业务规则:
this.AddValidation(new DataValidation("DateOfBirth", "DateOfBirthRequired",
delegate(DataValidation rule)
{
rule.ErrorMessage = "required";
return ((DateOfBirth >= new DateTime(1900, 1, 1)) && (DateOfBirth < DateTime.Today));
}, DataAction.Update | DataAction.Insert));
this.AddValidation(new DataValidation("State", "StateRequired",
delegate(DataValidation rule)
{
rule.ErrorMessage = "required";
return (State != States.Unknown);
}, DataAction.Insert | DataAction.Update));