MVC4中的自动完成

3

我在项目中遇到了自动完成的问题。我使用的是MVC4,已经按照Json部分的要求进行了正确的设置。但我不确定问题是出在jQuery上还是我的控制器上。 以下是代码:

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方法没有被调用,我能够通过输入字符串来搜索数据,但自动完成无法正常工作。

你的控制台有出现错误吗? - Viplock
没有,我没有遇到任何错误。 - intel1in
你的操作被调用了吗? - Ehsan Sajjad
2个回答

0

看起来您缺少一个重要的脚本文件:

Unobtrusive Ajax

我曾多次遇到这个问题。jQuery自动完成使用jQuery ajax函数,只有在包含Unobtrusive Ajax脚本的情况下才能与MVC一起使用。


我已经包含了不显眼的Ajax脚本,但是没有用,自动搜索仍然无法工作。 - intel1in

0

我解决了错误,并将脚本放在另一个区域,因此

@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/angular")
<script src="~/Scripts/MyApp.js"></script>
<script src="~/Scripts/jquery-ui-1.10.4.custom.min.js" type="text/javascript"></script>   
@RenderSection("scripts", required: false)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接