我从EditApplicationConcessionModel
视图模型中获得了一个视图
此视图模型及其他属性具有属性ListAnexes
public List<Anexes> ListAnexes { get; set; }
这是Anexes
类
public class Anexes
{
[Display(Name = "Number", ResourceType = typeof(Resources.Resources))]
public string ContractAnexesNumber { get; set; }
[Display(Name = "Date", ResourceType = typeof(Resources.Resources))]
public string ContractAnexDate { get; set; }
}
在我看来,我遍历这个附件列表并呈现部分视图_Anexes
,其中显示了附件的时间和数量
<div id="divAnexes">
@foreach (var item in Model.ListAnexes)
{
l.RenderPartial("_Anexes", item);
}
</div>
<div>
<button class="btn btn-primary" type="button" id="addAnex">ADD</button>
</div>
这是我的部分视图_Anexes
@model MEMineralResources.Common.Entities.Anexes
@using (Html.BeginCollectionItem("ListAnexes"))
{
<div class="divAnex">
<div class="form-group">
@Html.LabelFor(m => m.ContractAnexesNumber, new { @class = "control-label" })
@Html.TextBoxFor(m => m.ContractAnexesNumber, new { @class = "form-control" })
@Html.LabelFor(m => m.ContractAnexDate, new { @class = "control-label" })
@Html.TextBoxFor(m => m.ContractAnexDate, new { @class = "form-control datepicker" })
<div id="linkDelte"></div>
</div>
</div>
}
你看到我有一个按钮addAnnex,当你点击它时,我向AddAnex
动作发出ajax请求,然后将部分视图_Anexes
(动作返回)附加到带有其他附件的div (所以你可以填写另一个附件的数据和数量)
$('#addAnex').on('click', function () {
$.ajax({
async: false,
url: '@Url.Action("AddAnex", "Application")'
}).success(function (partialView) {
$('#divAnexes').append(partialView);
});
});
以下是AddAnnex
操作
public ActionResult AddAnex()
{
Anexes anex = new Anexes();
return PartialView("_Anexes", anex);
}
问题是:如果列表中只包含一个Anexes
项,那么它的编号和日期不是强制性的。但很明显,如果单击“添加”按钮,则必须填写附件的数字和日期!而且我想不出适合这种情况的自定义验证
答案 0 :(得分:0)
我认为最好的选择是使用remote data annotation
并在其上加上一些逻辑来检查Anexes
否是否多于一个,然后应用验证。