Kendo自动完成显示[对象对象]而不是属性值

时间:2016-03-31 13:41:50

标签: javascript jquery asp.net-mvc kendo-ui kendo-autocomplete

我正在尝试使用他们的教程配置kendo自动完成功能。 问题是自动完成控件显示对象而不是我在kendo初始化中设置的属性值(参见捕获):

@(
    Html.Kendo().AutoComplete()
    .Name("products")
    .Placeholder("Find Product...")
    .DataTextField("Name")
    .Template("<span><img src='/Content/Images/default-photo.jpg' " +
    "width='20' height='20' />&nbsp;${data}</span>")
    .DataSource(source =>
    {
        source.Read(read =>
        {
            read.Action("GetProducts", "Search")
            .Data("onAdditionalData");
        })
            .ServerFiltering(true);
    })

)

<script>
    function onAdditionalData() {
        return {
            text: $("#products").val()
        };
    }
</script>

enter image description here

点击此项后,名称显示正确: enter image description here

我的操作返回类型是return Json(products, JsonRequestBehavior.AllowGet); 产品在哪里ICollection<VmProduct> 怎么回事?

1 个答案:

答案 0 :(得分:1)

您已设置DataTextField,但在设置Template时会覆盖它,因为剑道会执行模板而不是获取您设置的字段。但这不是问题,问题是你的模板中你正在打印data对象,实际上是一个对象。您需要打印与建议文本相关的属性,例如:

.Template("<span><img src='/Content/Images/default-photo.jpg' " +
"width='20' height='20' />&nbsp;${data.Name}</span>")

尝试一下,告诉我们会发生什么。