You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kendo UI Multiselect标签模式:输入过滤值未传至服务器

解决Kendo MultiSelect Ajax请求未传递输入文本到后端的问题

我看了你的代码,问题出在Kendo MultiSelect开启serverFiltering后的默认参数传递逻辑上:Kendo UI会把输入的过滤文本以**filter**作为参数名发送给后端,但你的控制器接收的参数名是text,两者不匹配导致参数值为null。下面给你两种可行的解决方案:

方案1:修改控制器参数名适配Kendo默认行为

直接把控制器方法的参数名改成filter,就能接收Kendo默认传递的过滤文本:

public JsonResult GetTags(string filter) 
{
    List<Tag> tags = _tagRepository.GetAll(filter).ToList();
    return Json(tags);
}

方案2:配置前端DataSource,自定义传递的参数名

如果不想修改控制器的参数名,可以在DataSource的transport配置里,手动把过滤文本映射到text参数:

方式一:直接获取输入框值

$("#Tags").kendoMultiSelect({
    placeholder: "Select your tags",
    dataTextField: "Name",
    dataValueField: "Id",
    autoBind: false,
    maxSelectedItems: 5,
    minLength: 3,
    delay: 2000,
    dataSource: {
        serverFiltering: true,
        transport: {
            read: {
                url: "/Support/Ticket/GetTags",
                dataType: "json",
                data: function() {
                    // 获取MultiSelect的输入文本,传给text参数
                    return {
                        text: $("#Tags").data("kendoMultiSelect").filterInput.val()
                    };
                }
            }
        }
    }
});

方式二:利用参数映射处理(更贴合Kendo逻辑)

通过parameterMap提取Kendo内置的过滤参数,转成text传递:

$("#Tags").kendoMultiSelect({
    placeholder: "Select your tags",
    dataTextField: "Name",
    dataValueField: "Id",
    autoBind: false,
    maxSelectedItems: 5,
    minLength: 3,
    delay: 2000,
    dataSource: {
        serverFiltering: true,
        transport: {
            read: {
                url: "/Support/Ticket/GetTags",
                dataType: "json"
            },
            parameterMap: function(options, operation) {
                if (operation === "read" && options.filter) {
                    // 提取过滤条件中的文本值,映射到text参数
                    return {
                        text: options.filter.filters[0].value
                    };
                }
                return options;
            }
        }
    }
});

两种方案任选其一,修改后就能正常接收到输入的文本参数了。

内容的提问来源于stack exchange,提问作者Vaduganathan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 20:02:46