MVC重复验证

时间:2016-03-22 19:14:37

标签: c# asp.net-mvc asp.net-mvc-4

我对MVC很新,遇到验证问题。有一个包含可枚举玩家列表的模型。该模型还包括一个球员和球队的实例。在视图中,我使用foreach语句在表格中显示玩家,以便可以编辑细节。在foreach中,我有一个部分视图来处理模型的迭代.Players列表。该表单显示所有迭代正常,并允许用户更改值。如果某个值为空,则验证将无法返回到视图。出于某种原因而不是显示其他迭代与那些值和失败的那些带有警告,结果重复迭代,枚举中项目计数的验证失败。

我已经遵循了代码,它显示为每次迭代输入正确的数据,即使验证失败但仍然将每次迭代显示为解析到浏览器时失败的迭代。

模型

public class Players
{
    public int Id { get; set; }
    [Required]
    public int TeamId { get; set; }
    [Required]
    public int PlayerNumber { get; set; }
    [Required]
    public string PlayerName { get; set; }
    public int Comp { get; set; }
    //Not included all the values rest are int or string
}

查看

     @model TeamPlayersModel
     @foreach (var CurrentPlayer in Model.Players)
     {
        @Html.Partial("_PartialViewForEditPlayer", CurrentPlayer)
     }

部分视图

    @model Players

    @using (Html.BeginForm("EditPlayer", "Campaign", FormMethod.Post, new { name = Model.Id, id = Model.Id }))
    {
        {
    <tr>
        <td><div class="text-box">@Html.EditorFor(p => p.PlayerNumber)@Html.ValidationMessageFor(p => p.PlayerNumber)</div></td>

        <td><div class="text-box">@Html.EditorFor(p => p.PlayerName, new { style = "width:100px" })@Html.ValidationMessageFor(p => p.PlayerName)</div></td>

    @Html.HiddenFor(p => p.Id)
    @Html.HiddenFor(p => p.TeamId)

    <input type="submit" value="Edit" />
</td>
    </tr>
    }
    }

1 个答案:

答案 0 :(得分:0)

检查页面的来源。您的&#39; data-valmsg-for&#39;很可能会有相同的价值观。因此,当出现问题时,它会在每个问题上显示文字。

看起来你想要的是一个AJAX风格的表单。这应该可以帮助您入门。

http://eliot-jones.com/2014/09/mvc-ajax