2

チェックボックスを選択すると、奇妙なチェックボックス検証エラーが発生します。エラーはjquery.minにあります:エラー:構文エラー、認識されない式:

input:hidden [name='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チェックボックスをクリックすると、次の構文エラーが発生します。一重引用符が配置されている場所に注意してください。

エラー:構文エラー、認識されない式:input: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>

EditorFor Template 1

@model  ViewModels.CategoryandItemsVM        
@Html.EditorFor(x => x.ChecklistItems)   

EditorFor Template 2

@model  ViewModels.ChecklistItemVM        
@Html.CheckBoxFor(x => x.IsSelected)      

ネストされたコレクションを手動でループし(EditorForテンプレートなし)、コントロールに正しく名前を付けると、すべてが正常に機能します。剣道バリデーターとネストされたモデルに問題があるようです。

更新この問題の解決策はありませんが、より複雑でないビューモデルで問題を再現しました。EditorForテンプレートのレベルが1つしかない場合にも、同じエラーが発生します。

4

0 に答える 0