所以我一直在搜索堆栈几个小时,似乎无法找到解决方案。我正在尝试实现基本的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();
}
答案 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();
}
});