C# MVC5创建带有自动完成的组合框

C# MVC5创建带有自动完成的组合框,c#,asp.net-mvc,razor,view,combobox,C#,Asp.net Mvc,Razor,View,Combobox,我有一个查找表,它必须包含以下属性:ID、Name public class Color { public int ID {get;set;} public string Name {get;set;} } 我想创建一个组合框,让我选择一种颜色或创建一个新的,如果文本不是列表的一部分 //颜色控制器 public ActionResult Create() { ViewBag.ColorID = new SelectList(db.Colors,"ID","Nam

我有一个查找表,它必须包含以下属性:ID、Name

public class Color
{
     public int ID {get;set;}
     public string Name {get;set;}
}
我想创建一个组合框,让我选择一种颜色或创建一个新的,如果文本不是列表的一部分

//颜色控制器

public ActionResult Create()
{
     ViewBag.ColorID = new SelectList(db.Colors,"ID","Name");
     return View();
}
//创建视图

@model Color

@using(Html.BeginForm())
{
<dl>
   <dt>
        @Html.LabelFor(m=>m.Name)
   </dt>
   <dd>
        @Html.DropDownList("ColorID", null, "--Select Color --", new {})
   </dd>
</dl>
}

在这一点上,我有一个下拉列表,但由于它呈现为一个选择,我无法编辑文本。MVC5有什么现成的东西可以让我从此点创建一个组合框吗?

这将创建一个选择列表组合框

@Html.DropDownListColorID,null,-选择颜色-,新建{size=5}

但是为了更深入地了解我的答案,您所寻找的东西在MVC5中是不现成的。你需要更多。。。 在过去,我使用KnockoutJs和AJAX调用提前创建了一个类型。

我最后这样做了:

 @model Color
 .....

 @using(Html.BeginForm())
 {
    @Html.Hidden("ID")
    <input type="text" name="Name" list="colors" 
                       class="form-control"  id="co" value="@Model.Name" />
    <datalist id="colors">
    @foreach (var item in ViewBag.AttorneyOfficeID)
    {
      <option value="@item.Text" data-id="@item.Value" />
    }
    </datalist>
 }
我创建了一个隐藏的ID来保存所选的选项,并使用下面的脚本设置它

<script>
$('#co').on('change', function () {
   var id = $("option").filter("[value='" + $('#co').val() + "']").data("id");
   $("[name='ID']").val(id);
};
</script>
这项工作已经完成,但我将保留这个问题,因为我愿意接受建议