I have a form with a Kendo UI MultiSelect component for ASP.NET MVC / Razor :
@(Html.Kendo().MultiSelectFor(m => m.Ids)
.Filter(FilterType.Contains)
.AutoBind(true)
.MinLength(3)
.Delay(500)
.DataTextField("Value")
.DataValueField("Key")
.Placeholder("Please fill")
.DataSource(
ds => ds.Read(
r => r.Action("FillMultiSelect", "ReportsController", new { companyId = IdentityManager.CompanyID, search = string.Empty })
).ServerFiltering(true)
)
)
JavaScript for filter configuration:
var $ids = $("#Ids").data("kendoMultiSelect");
$ids.dataSource.transport.options.read.data = basicFilter($ids);
var basicFilter = function ($element) {
return {
companyId: self.form.getModel().CompanyId,
search: $element.input.val()
}
}
When I type the search text in the "Ids" field, the parameter passed to Action
of the MVC is the value of the placeholder > field, not what was typed:
What's wrong with my code?