我有一个Ajax调用,触及我的控制器操作' SearchFromWithin'我想知道为什么视图没有显示出来。我可以进入视图并逐步浏览,但屏幕保持不变。它不会显示新视图。
这是我的代码
var optionsFromWithin = {
url: '/Home/SearchFromWithin',
type: "get",
data: { searchQuery: navbarInput.value, classDate: today, latitude: latitude, longitude: longitude, mapType: mapType }
};
$.ajax(optionsFromWithin).done(function (data) {
// don't do anything here
});

以下是控制器中的操作。当我到达return语句时,我可以进入"搜索"查看并单步执行它没有明显的错误,但页面永远不会改变我在进行Ajax调用时的状态。
[HttpGet]
public ActionResult SearchFromWithin(string searchQuery, DateTime classDate, string latitude, string longitude,
string mapType, int page = 1)
{
// do a bunch of stuff here
return View("Search", viewModel);
}
答案 0 :(得分:4)
这可能是因为您没有更新您的网页吗?通常当你调用ajax时,不要调用部分视图,将其内容用作特定元素的html [例如DIV]?
return PartialView("viewName",Model);
然后当ajax调用完成时
$('#myDiv').html(data);
这就是你要找的东西吗?
答案 1 :(得分:2)
使用ajax调用,您无法浏览其他页面。我们实际上使用Ajax从服务器获取数据,然后使用这些数据更新客户端html。
在控制器中使用此代码
return PartialView("viewName",Model);
之后导航页面如下:
$.ajax(optionsFromWithin).done(function (data) {
/*pass the data to next page for re use or save somewhere*/
window.location.href = "/Controller/Action";
});