我正在尝试在我的Asp.Net MVC应用程序中创建一个自动完成框。 这就是我到目前为止所做的 我的viewModel
public class CreateAppointment
{
public string SuperOfficeEmail { get; set; }
}
在控制器中我有这个方法
public ActionResult Create()
{
return View();
}
public ActionResult Person(string searchText)
{
var persons = FindPersons(searchText);
return Content(?? don't know what to do)
}
在视图中我有
@model DatePicker.Models.ViewModels.CreateAppointment
@{
ViewBag.Title = "Create";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Create</h2>
@using(Html.BeginForm("Create","Appointment"))
{
@Html.TextBoxFor(m=>m.SuperOfficeEmail)
}
<script src="~/Scripts/jquery-ui-1.10.4.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#SuperOfficeEmail").
autocomplete('@Url.Action("Persons", "Appointment")', { minChars: 1 });
});
</script>
在ActionResult Person
var persons
举行List<AddressBookPersons>
和AddressBookPersons类看起来像这样
public class AddressBookPerson
{
public string Email { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
我想要做的是当出现自动填充时显示FirstName + LastName作为文本,当用户选择某些选项时,我将Email作为文本框的值。就像我们在下拉列表中所做的那样。 这可能吗(可能正在使用Ajax?)?我怎么做? 我之前没有使用自动完成功能,并且正在关注此网站tutorial,我对jquery也很陌生。