2013-02-15 25 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