选中此复选框后,我收到一个奇怪的复选框验证错误。错误发生在jquery.min上: 错误:语法错误,无法识别的表达式:
输入:隐藏[名= 'CategoriesandItems [1'] ChecklistItems [2] .IsSelected]
复杂/嵌套ViewModel
public class ChecklistVM
{
public int ChecklistId {get; set;}
public string ChecklistName { get; set; }
public List<CategoryandItemsVM> CategoriesandItems { get; set; }
}
public class CategoryandItemsVM
{
public int CategoryId { get; set; }
public string CategoryName { get; set; }
public List<ChecklistItemVM> ChecklistItems { get; set; }
}
public class ChecklistItemVM
{
public int? ChecklistItemId { get; set; }
public bool IsSelected { get; set; }
public string PropName {gets; set;)
}
当我单击IsSelected CheckBox时,出现以下语法错误。 请注意单引号的放置位置。
错误:语法错误,无法识别的表达式: 输入:隐藏[名= 'CategoriesandItems [1'] ChecklistItems [2] .IsSelected]
查看
@model ViewModels.CheckListVM
@Html.EditorFor(x=>x.CategoriesandItems)
<script language="javascript" type="text/javascript">
$(document).ready(function () {
window.validator = $("#ChecklistForm").kendoValidator().data("kendoValidator");
});
</script>
编辑模板1
@model ViewModels.CategoryandItemsVM
@Html.EditorFor(x => x.ChecklistItems)
编辑模板2
@model ViewModels.ChecklistItemVM
@Html.CheckBoxFor(x => x.IsSelected)
如果我手动遍历嵌套集合(没有编辑器模板)并正确命名控件,一切正常。看起来Kendo验证器和嵌套模型存在问题。
更新 无法解决此问题,但我使用不太复杂的视图模型重现了该问题。当只有1级EditorFor模板时,会发生同样的错误。