Jquery自动完成httppost actionresult在ajax发布后没有加载

时间:2016-05-19 14:05:38

标签: javascript jquery ajax asp.net-mvc autocomplete

所以我一直在搜索堆栈几个小时,似乎无法找到解决方案。我正在尝试实现基本的jquery自动完成,但是当我单击/选择自动完成下拉列表中的项目以将我发送到新页面时,我的httppost actionresult不会返回视图。它可以很好地运行httppost控制器(所有参数都被传递,查询运行,模型传递给视图等)。我很确定这是由于我的ajax帖子中的window.location.reload();,但似乎无法想出这一点。我也试过window.location.href = link;,但那也没有用。请帮忙:(

JS

$("#queryTypeInput").autocomplete({
  source: "/Dashboard/EnterMatterFormAjax/",
  select: function (event, ui) {                
    var inputVal = ui.item.value.substring(0, 10);                            

    $.ajax({type:"POST",
    url:"Dashboard",
    data:{ queryType: queryTypeval }, 
    success: function (result) {
      window.location.reload(); //this is where i think the issue is 
    }
  })
});

EnterMatterFormAjax Controller(工作精细)

public JsonResult EnterMatterFormAjax(string term)
    {
        var termReq = Request["term"];            
        var termReq2 = "";
        if (termReq.All(char.IsDigit))
        {
            termReq2 = termReq + "%";
        }
        else
        {
            termReq2 = "%" + termReq + "%";
        }
        var ajaxMatterData = GetAjaxMatterData(termReq2);

        return Json(ajaxMatterData, JsonRequestBehavior.AllowGet);
    }

索引控制器(工作精细)

[HttpPost]
    public ActionResult Index(string queryType)
    {
        ...goes through code logic...
        return View();
    }

1 个答案:

答案 0 :(得分:0)

我刚刚在自动填充选择后重新提交了表单,而不是使用window.location.href作为@KarthikMR提到的。我不得不改变我的控制器动作,所以我采取了最简单的道路。 @KarthikMR的建议虽然改变了我的行动但确实有效,所以这是一个可行的选择!更新下面的js:

$("#queryTypeInput").autocomplete({        
source: function (request, response) {
    $.post("Dashboard/EnterMatterFormAjax", request, response);            
},
select: function(event, ui){            
    $("#queryTypeInput").val(ui.item.value);
    $("#enterMatterForm").submit();
}
});