5

Ajax Binding の Kendo UI Ajax Binding ドキュメントでは、複数のデータ パラメータを Action メソッドに渡す方法について説明していますが、MultiSelect 値などの配列の受け渡しについては説明していません。

以下の例では、multisel が "237896" のような文字列に設定されている場合、コントローラーは sitesFilter="237896" を受け取ります。ただし、以下に示すように multisel が MultiSelect 値に設定されている場合、コントローラーは sitesFilter = null を受け取ります。

MVC ラッパーを使用してすべての MultiSelect 値を Action メソッドに送信する適切な方法は何ですか?

    .DataSource(dataSource => dataSource
                              .Ajax()
                              .ServerOperation(false)
                              .Read(read => read.Action("Documents_Read", "Document")
                                                .Type(HttpVerbs.Post)
                                                .Data("getCriteria"))

    function getCriteria() {
    var multisel = $("#sites").data("kendoMultiSelect").value();
    return {
        sitesFilter: multisel
    };
}

    public ActionResult Documents_Read([DataSourceRequest] DataSourceRequest request, string sitesFilter=null)
    {
        return Json(GetDocuments(sitesFilter).ToDataSourceResult(request), JsonRequestBehavior.DenyGet);
    }

編集: 以下に示すように、getCriteria はデータを文字列に変換する必要があります。

 function getCriteria() {
        var multisel = $("#sites").data("kendoMultiSelect").value().toString();
        return {
            sitesFilter: multisel
        };
4

2 に答える 2