【发布时间】:2015-04-09 15:50:30
【问题描述】:
我不明白为什么在我提交表单后验证没有启动。
我有这个虚拟机。
public EditFooDetailVm {
public int FooDetailIdVm { get; set; }
public IEnumerable<EditFooVm> Foos { get; set; }
}
public class EditFooVm {
public int FooId { get; set; }
public int FooDropDownId { get; set; }
public int Index { get; set; }
public IEnumerable<SelectListItem> FooDropDown { get; set; }
}
在我的控制器中:
var foo = _db.Foos
.Select((f, i) => new EditFooDetailVm {
FooDetailIdVm = f.FooDetailId,
Foos = f.Foos
.Select(fs => new EditFooVm {
FooId = fs.FooId,
Index = i,
FooDropDown = fs.FooDropDown.ToSelectList(fd => fd.Name, fd => fd.Id)
})
})
在我看来:
@Model.FooDetailIdVm
@foreach(var item in Model.Foos) {
@Html.DropDownList("Foos[" + item.Index + "].FooDropDownId", item.FooDropDown, "Please select")
<span class="field-validation-error" data-valmsg-for="Foos[@item.Index].FooDropDownId" data-valmsg-replace="true"></span>
}
我已经在页面中包含了validationjs,但是一旦我提交了表单,即使我没有在下拉列表中选择任何内容,验证也不会显示在客户端。我什至让自己在渲染验证标签时手动创建标记。我错过了什么?任何帮助将非常感激。谢谢!
【问题讨论】:
标签: c# asp.net-mvc asp.net-mvc-4 unobtrusive-validation