Asp.net mvc Razor视图表验证
我有一个元素表,用户为每一行输入一个数字。我想验证用户输入的数字加起来是否为100,如果没有,则显示一条消息 以下是我的看法Asp.net mvc Razor视图表验证,asp.net-mvc,validation,razor,Asp.net Mvc,Validation,Razor,我有一个元素表,用户为每一行输入一个数字。我想验证用户输入的数字加起来是否为100,如果没有,则显示一条消息 以下是我的看法 <form asp-action="CreateResource"> <table class="table table-bordered table-condensed table-hover" id="tbFunds"> <thea
<form asp-action="CreateResource">
<table class="table table-bordered table-condensed table-hover" id="tbFunds">
<thead>
<tr>
<th>
Fund Name
</th>
<th>
Percentage
</th>
</tr>
</thead>
@for (int i = 0; i < Model.FundItems.Count; i++)
{
<tr>
<td>
@Html.Label(Model.FundItems[i].FundName)
</td>
<td>
@Html.HiddenFor(x => Model.FundItems[i].FundId)
@Html.EditorFor(x => Model.FundItems[i].Percentage)
</td>
</tr>
}
</table>
<div class="form-group">
<input type="submit" value="Create" class="btn btn-primary" />
</div>
</form>
基金名称
百分比
@对于(int i=0;iModel.FundItems[i].FundId)
@EditorFor(x=>Model.FundItems[i].Percentage)
}
还有我的模特
public class CreateResource
{
[Required]
[StringLength(100)]
[Display(Name = "Resource Name")]
public string ResourceName { get; set; }
public List<CreateResourceFundItem> FundItems { get; set; }
}
public class CreateResourceFundItem
{
public Guid FundId { get; set; }
[Display(Name = "Fund Name")]
public string FundName { get; set; }
[Required]
[Display(Name = "Percentage")]
public int Percentage { get; set; }
}
公共类CreateResource
{
[必需]
[长度(100)]
[显示(Name=“资源名称”)]
公共字符串ResourceName{get;set;}
公共列表项{get;set;}
}
公共类CreateResourceFundItem
{
公共Guid FundId{get;set;}
[显示(Name=“基金名称”)]
公共字符串FundName{get;set;}
[必需]
[显示(Name=“百分比”)]
公共整数百分比{get;set;}
}
我尝试像这样使用DataAnnotationExtensions.EqualTo属性,但没有成功
public class CreateResource
{
[Required]
[StringLength(100)]
[Display(Name = "Resource Name")]
public string ResourceName { get; set; }
public List<CreateResourceFundItem> FundItems { get; set; }
[EqualTo("Total", ErrorMessage ="Percentages must add up to 100")]
public int ItemsTotal { get { return FundItems.Sum(x => x.Percentage); } }
public int Total { get { return 100; } }
}
公共类CreateResource
{
[必需]
[长度(100)]
[显示(Name=“资源名称”)]
公共字符串ResourceName{get;set;}
公共列表项{get;set;}
[EqualTo(“Total”,ErrorMessage=“百分比加起来必须等于100”)]
public int ItemsTotal{get{return FundItems.Sum(x=>x.Percentage);}
公共整数总计{get{return 100;}}
}
你认为解决这个问题的最好办法是什么