选中复选框时出现奇怪的复选框验证错误。jquery.min 上出现错误:错误:语法错误,无法识别的表达式:
输入:hidden[name='CategoriesandItems[1'].ChecklistItems[2].IsSelected]
复杂/嵌套视图模型
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 时,出现以下语法错误。注意单引号的位置。
错误:语法错误,无法识别的表达式:输入:hidden[name='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)
如果我手动遍历嵌套集合(没有 EditorFor 模板)并正确命名控件,一切正常。看起来 Kendo 验证器和嵌套模型存在问题。
更新没有解决这个问题,但我用不太复杂的视图模型重现了这个问题。当只有 1 级 EditorFor 模板时会发生相同的错误。