javascript - MVC4 中的自动完成

标签 javascript c#

在我的项目中使用自动完成时遇到问题。我正在使用 MVC4。我已经使用 Json 部分正确地遵循了所有内容。我不确定问题是出在 jQuery 上还是在我的 Controller 上。 以下是代码

public ActionResult Index()
    {
        EmployeeContext db = new EmployeeContext();
        return View(db.Employees);
    }
    [HttpPost]
    public ActionResult Index(string Search_Data)
    {
        EmployeeContext db = new EmployeeContext();
        List<Employee> employees;
        if (string.IsNullOrEmpty(Search_Data))
        {
            employees = db.Employees.ToList();
        }
        else
        {
            employees = db.Employees
                .Where(s => s.EmpName.StartsWith(Search_Data)).ToList();
        }
        return View(employees);
    }
    public JsonResult GetEmployees(string term)
    {
        EmployeeContext db = new EmployeeContext();
        List<string> employees = db.Employees.Where(s => s.EmpName.StartsWith(term))
            .Select(x => x.EmpName).ToList();
        return Json(employees, JsonRequestBehavior.AllowGet);
    }

我的 index.cshtml 中使用了以下脚本

    <link href="~/Content/jquery-ui-1.10.4.custom.min.css" rel="stylesheet" type="text/css"/>
<script src="~/Scripts/jquery-1.10.2.js" type="text/javascript"></script>
<script src="~/Scripts/jquery-ui-1.10.4.custom.min.js" type="text/javascript"></script>
<script type="text/javascript">
    $(function () {
        $("#txtSearch").autocomplete({
            source: '@Url.Action("GetEmployees","Employee")',
            minLength: 1
        });
    });
</script>

问题是 GetEmployees 方法未命中,我可以通过输入字符串来搜索数据,但自动完成功能不起作用。

最佳答案

您似乎缺少一个重要的脚本文件:

Unobtrusive Ajax

我曾多次为这个问题所困扰。 jQuery 自动完成功能使用 jQuery ajax 函数,如果您包含 Unobtrusive Ajax 脚本,这仅适用于 MVC。

关于javascript - MVC4 中的自动完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35402868/

相关文章:

Javascript,用Promises拼接FileReader处理大文件,怎么样?

c# - 如何从 Razor 切换到普通的旧 HTML?

c# - 将 url 从 utf-8 编码重新编码为 iso-8859-1 编码

javascript - 修改 SVG.js 创建的父 SVG 的高度

javascript - Jquery代码在点击时没有改变

javascript - 仅在父级(元素外部)上使用 onclick() 时删除子级

c# - Stack<T> 相关一行中的意外操作顺序

c# - 如何使用 Windows Azure 将 Web 表单的输入接收到我的控制台应用程序?

c# - Max in linq to NHibernate 对于数据库中不存在的数据

c# - Unity3D - 敌人没有受到伤害