2013-02-15 27 views
1

這是我在stackoverflow上的第一個問題,所以請善待,如果我應該失去一些東西。 我有兩種形式,每種形式都鏈接到自己的操作(用於數據修改)並組合在一個視圖中。目前,我正在使用partials和由分配給表單的兩個模型組成的父模型。組合模型驗證摘要

我的主要觀點看起來有點像這樣:

@model ReportingUploadPortal.Models.ManageUserDataModel 
@Html.Partial("_ChangePasswordPartial", Model.PasswordModel) 
@Html.Partial("_ChangeEMailPartial",Model.EmailModel) 

我父模型是這樣的:

public class ManageUserDataModel 
{ 
    public ChangeEmailModel EmailModel { get; set; } 
    public LocalPasswordModel PasswordModel { get; set; } 
} 

我得到驗證摘要信息顯示兩次,我的每個兩個部分意見(他們非常相似)。看起來,驗證信息與父模型相關,而不是與兩個子模型中的每一個相關聯。

@using (Html.BeginForm("ChangeEmail", "Account")) { 
@Html.AntiForgeryToken() 
@Html.ValidationSummary() 

<fieldset> 
    <legend>Change your email</legend> 
    <ol> 
     <li> 
      @Html.LabelFor(m => m.EMail) 
      @Html.TextBoxFor(m => m.EMail) 
     </li> 
     <li> 
      @Html.LabelFor(m => m.ConfirmEMail) 
      @Html.TextBoxFor(m => m.ConfirmEMail) 
     </li> 
    </ol> 
    <input type="submit" value="Change email" /> 
</fieldset> 

}

我怎樣才能得到每個窗體/模型一個單獨的驗證摘要?

回答

0

@Html.ValidationSummary()就是這樣一個總結。它實際上是模型中的錯誤列表。所以我相信每個模型都應該有它自己的總結(對此不確定)。

我相信你會得到重複的摘要,因爲你在這個行中有:@Html.ValidationSummary()在每個部分視圖中的每個表單中。每當你有這條線時,它會將整個摘要打印到頁面上。您可以用某些標誌更改彙總表的粒度,但也可以使用整個彙總的替代方法,例如@Html.ValidationMessage()

希望有幫助!

+0

嗨DubstepCat,感謝您的提示。我需要szenario中每個模型的所有驗證錯誤摘要。我將查看ValidationMessage並嘗試瞭解您提到的那些標誌。任何進一步的幫助/提示,​​非常感謝。 – user1853212 2013-02-18 08:09:44

+0

不幸的是,標誌和ValidationMessage不是我正在尋找的東西。有沒有人有另一個想法如何解決這個問題? – user1853212 2013-02-19 15:26:34

+0

我同時解決了這個問題,將總結添加到主視圖中。 DubstepCat的提示幫助了我,所以我會接受他的回答。 – user1853212 2013-02-22 09:41:42