2013-02-01 90 views
0

我有一個ViewModel,我正在使用POST數據回到服務器。MVC 4 ViewModel不顯示驗證

[MetadataType(typeof(CompanyAdminViewModel))] 
public class CompanyAdminViewModel 
{ 
    public Company Company { get; set; } 
    public RegisterModel User { get; set; } 

    public CompanyAdminViewModel() 
    { 

    } 
} 

公司實體的子實體:Company.CompanyContacts

public class CompanyContact 
{ 
    public int CompanyContactId { get; set; } 
    public int JobTitleId { get; set; } 
    public int CompanyId { get; set; } 
    public string Title { get; set; } 
    [Required] 
    public string FirstName { get; set; } 
    [Required] 
    public string LastName { get; set; } 
    public Nullable<DateTime> BirthDate { get; set; } 
    public string Gender { get; set; } 
    [Required] 
    public string Phone { get; set; } 
    public string Fax { get; set; } 
    public string Extension { get; set; } 
    [Required] 
    public string Email { get; set; } 
    public Nullable<DateTime> HireDate { get; set; } 
    public virtual Company Company { get; set; } 

    public virtual JobTitle JobTitle { get; set; } 

    public bool IsActive { get; set; } 
} 

當我查看pagesource,數據 - *屬性正確地呈現爲模型的屬性。

<div class="editor-label"> 
       <label for="FirstName">FirstName</label> 
      </div> 
      <div class="editor-field"> 
       <input class="text-box single-line" data-val="true" data-val-required="The FirstName field is required." id="FirstName" name="FirstName" type="text" value="" /> 
       <span class="field-validation-valid" data-valmsg-for="FirstName" data-valmsg-replace="true"></span> 
      </div> 

      <div class="editor-label"> 
       <label for="LastName">LastName</label> 
      </div> 
      <div class="editor-field"> 
       <input class="text-box single-line" data-val="true" data-val-required="The LastName field is required." id="LastName" name="LastName" type="text" value="" /> 
       <span class="field-validation-valid" data-valmsg-for="LastName" data-valmsg-replace="true"></span> 
      </div> 

當我POST表單時,只有密碼屬性顯示驗證錯誤。當我檢查Model.IsValid時,所有失敗的驗證都在集合中...

那麼,爲什麼在嘗試POST之後,窗體上只顯示一些驗證錯誤?

+0

您可以發佈表單代碼 –

+0

我沒有看到密碼字段的任何地方 – Cris

+0

我只展示無效的字段 - 密碼正確顯示驗證 – Greg

回答

1

,如果你增加了有關表格的一切,將是有益;)

我的問題,雖然,是它提交?您在許多字段上都有必要的過濾器,但沒有消息(因此它可能不顯示錯誤,但不會提交)。

您是否嘗試過這些:

@Html.ValidationSummary() 

和(對於田野上你想驗證:

@Html.ValidationMessageFor(m => m.FirstName)