如何根据输入的名称自动填写表单

我有一个名为Customers的数据库表。 此表包含NamePhoneEmailAddress 。 有一个表单,客户可以填写所有这些字段。 我在Name字段上有JqueryUI-Autocomplete

这一切都正常。 但是,我遇到的问题是:如何检查在文本字段中输入的名称是否与数据库中的名称相同?

我尝试过的:

  $(function () { $("#Customer_Name").autocomplete( { source: "/Home/AutoCompleteSuggestions", select: function (event, ui) { $("#Customer_Phone").val(@Model.entity.Customers.ToList().Find(//What do I insert here? Where do i get it from?); } }); });  

我的问题是在.Find()如何找到文本框内的文本,或从自动完成下拉列表中选择的文本?

据我所知,我不能使用ui变量,因为它是javascript。

编辑2:

我正在尝试用ajax做,但我不确定如何做到这一点。

这是我的代码:

 var text = $('#Customer_Name').val(); $.ajax({ type: "POST", url: "/Home/MyActionResult", data: text, success: function () { alert('success'); } }); 

不确定要在控制器中放置什么,以及在何处更改文本框值

假设您在页面中加载了jQuery和jQuery UI库(使用jQuery ui css)。

  
@section scripts{ }

您需要有一个操作方法来返回JSON格式的自动完成响应,如下所示

 public ActionResult Search(string term) { var db= new MyDbContext(); var results = db.Customers.Where(s => s.Name.StartsWith(term)) .Select(x=>new { id =x.Id, value=x.Name , phone=x.Phone}) .ToList(); return Json(results,JsonRequestBehavior.AllowGet); } 

这就是我解决它的方式:

jQuery脚本:

 $(function () { $("#Customer_Name").autocomplete( { source: "/Home/AutoCompleteSuggestions", select: function (event, ui) { var text =ui.item.value; $.ajax({ type: "POST", url: "/Home/MyActionResult", data: { data: text }, success: function (data) { alert(data); $("#Customer_Phone").val(JSON.parse(data).Phone); $("#Customer_Address").val(JSON.parse(data).Address); $("#Customer_Email").val(JSON.parse(data).Email); } }); } }); }); 

和控制器:

 public JsonResult MyActionResult(string data) { var x = _db.Customers.ToList().Find(name => name.Name == data); var json = new JavaScriptSerializer().Serialize(x); return Json(json, JsonRequestBehavior.AllowGet); }