来自数据库的Kendo自动完成模板img src

时间:2016-03-31 17:19:34

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

有许多示例如何从静态内容设置图标。例如:

Html.Kendo().AutoComplete()
    .Name("employess")
    .Placeholder("Find Product..")
    .DataTextField("Name")
    .HighlightFirst(true)
    .Template("<span><img src='/Content/Images/default-photo.jpg' " +
    "width='20' height='20' />&nbsp;${data.Name}</span>")
...

是否可以通过$ {data.ImageId}从数据库设置image src? 我尝试制作控制器方法并粘贴Url.Action而不是default-photo,但编译器不明白我想做什么。

感谢您提前!

1 个答案:

答案 0 :(得分:2)

如果您的data对象中有图像名称且图片位于“内容”文件夹中,则可以使用django docs获取其路径,如Url.Content()所示。所以你的模板可能就像:

.Template("<span><img src='" + Url.Content("~/Images/") + "${data.ImageName}' " +
"width='20' height='20' />&nbsp;${data.Name}</span>")

网址会产生类似:Content/Images/image.jpg的内容。

但是如果你只有id并需要生成图像作为http响应,你可以为它创建一个动作方法,如here所示。所以你的模板将是:

.Template("<span><img src='" + Url.Action("GetImage", "Search") + "/${data.ImageId}' " +
"width='20' height='20' />&nbsp;${data.Name}</span>")

网址会产生类似:Search/GetImage/1的内容。

在这两种情况下,你都会以某种方式 concat ASP.Net字符串中的Javascript变量,如我朋友的here所示。