2

选中复选框时出现奇怪的复选框验证错误。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 模板时会发生相同的错误。

4

0 回答 0