c# - 将 Razor 与 Jquery 合并以实现自动完成功能

标签 c# jquery asp.net-mvc jquery-ui razor

我正在使用本指南 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/

相关文章:

javascript - 为 Highcharts yAxis.Max 使用变量

asp.net-mvc - 在 LINQ 查询和 ASP.NET MVC 方面需要帮助?

asp.net-mvc - 在 Razor 中使用 ScriptManager?

c# - 如何在 C# 中播放声音?

c# - 从 visual studio 2005 升级到 visual studio 2008

jquery - 表格行的旋转图标点

javascript - 为什么将 .getJSON 中的名称声明为列表中的索引后仍未定义(JavaScript/JQuery)

c# - 在 .net 中显示文件上传进度

C# WPF BorderBrush 不会设置颜色

c# - WCF 捕获异步异常