从jQuery自动完成选择中触发控制器动作

问题描述

| 我有一个jQuery自动选择框,显示正确的数据。现在,当选择一个项目时,我想启动一个ASP.NET MVC 3控制器。然后,控制器应重定向到视图。这是我的jQuery自动完成代码(我确定第二个Ajax调用中缺少某些内容,但是我还没有找到它):
<script type=\"text/javascript\">
    $(function () {
        $(\"#Client\").autocomplete({
            source: function (request,response) {
                $.ajax({
                    url: \'Entity/GetClientAutoComplete\',type: \'POST\',dataType: \'json\',data: { query: request.term },success: function (data) {
                        response($.map(data,function (item) {
                            return { label: item,value: item };
                        }))
                    }
                })
            },minLength: 1,select: function (event,ui) {
                $.ajax({
                    url: \'Entity/GetApplicationsByName/\' + ui.item.value,type: \'POST\'
                })
            }
        });
    });
    </script>
这是我要调用的控制器:
 public ActionResult GetApplicationsByName(string id)
        {
            ViewBag.Client = id;
            var apps = _service.GetDashboardByName(id);
            return View(\"Dashboard\",apps.ToList());
        }
当我看着Firebug中的Ajax调用触发时,我看到了正确的URL配置,但是没有其他反应。它的作用好像是要加载某些内容而不是发送某些内容。我很困惑。感谢您的指导。     

解决方法

好吧,您以
POST
的形式向
GetApplicationsByName
控制器发送了
id
,控制器正在发回视图。 如果要重定向,可以使用以下命令:
select: function (event,ui) {
    window.location.href = \'Entity/GetApplicationsByName/\' + ui.item.value;
}