我正在使用本指南 http://jqueryui.com/autocomplete/#custom-data以及我对 C# 和 razor 知之甚少,只要选择其中一个文本框就可以尝试自动完成 3 个文本框。
因此,如果我输入 partno 并从下拉列表中选择一个,则会填充项目名称、desc 和 ID。如果我在任何其他字段中键入相同的内容。
我已经创建了一个类并将其放入列表中
var varItems = new List<Item>();
varItems = db.Items.Select(tbl => new Item
{
ID = tbl.ID,
Name = tbl.Name,
PartNo = tbl.PartNo,
Description = tbl.Description
}).ToList();
然后将其发送到一个 viewbag 中
ViewBag.Items = var.items;
然后在 View 中
$( "#Name" ).autocomplete({
minLength: 0,
source: @ViewBag.Items,
focus: function( event, ui ) {
$( "#Name" ).val( ui.item.label );
return false;
},
select: function( event, ui ) {
$( "#Name" ).val( ui.item.Name );
$( "#PartNo" ).val( ui.item.PartNo );
$( "#Description" ).html( ui.item.Description );
return false;
}
});
但它不喜欢 viewbag 在那里。我猜我必须做某种循环才能产生如下所示的东西?
var projects = [
{
value: "jquery",
label: "jQuery",
desc: "the write less, do more, JavaScript library",
icon: "jquery_32x32.png"
},
{
value: "jquery-ui",
label: "jQuery UI",
desc: "the official user interface library for jQuery",
icon: "jqueryui_32x32.png"
},
{
value: "sizzlejs",
label: "Sizzle JS",
desc: "a pure-JavaScript CSS selector engine",
icon: "sizzlejs_32x32.png"
}
];
如果是这样,我如何循环我的列表来创建上面的内容?
谢谢大家
最佳答案
试试这个:
source: @Html.Raw(Json.Encode(@ViewBag.Items));
这会将您的项目编码为 json,它应该可以工作。
关于c# - 将 Razor 与 Jquery 合并以实现自动完成功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21115725/