我对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>
}
}
答案 0 :(得分:0)
检查页面的来源。您的&#39; data-valmsg-for&#39;很可能会有相同的价值观。因此,当出现问题时,它会在每个问题上显示文字。
看起来你想要的是一个AJAX风格的表单。这应该可以帮助您入门。