2012-03-04 60 views
1

我正在使用Html.ValidationMessageFor()方法在窗體上顯示驗證消息。對於大多數表單字段,除了幾個字段外,我收到了相應的錯誤消息。一個是'出生日期'字段,它是表格上的文本框,另一個是'州'字段,與所有美國州下拉。對於這兩個字段,我得到'DateOfBirth字段是必需的'。和'國家領域是必需的'。與Html.ValidationMessageFor()方法不一致的行爲

我打開了反射器,看了一下Html.ValidationMessageFor()靜態方法中的代碼,它似乎沒有像這些方法添加此消息。

任何想法,這個消息可能來自&如何解決它?

UPDATE 添加了模型代碼...基本上我使用的是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)); 
+0

你的模特是什麼樣的?你能提供這個源代碼嗎? – JasCav 2012-03-04 00:34:12

+0

增加了模型的一些來源。 – Skadoosh 2012-03-04 00:52:14

回答

0

所有我需要做的是將其設置爲null的作爲中提到的性能this post