提到我的问题,我想更新页面,即仅在每个 15
之后刷新页面秒而不重新加载它。现在我正在使用 <meta http-equiv="refresh" content="15">
它会在重新加载页面时更新页面,这不是一个好方法,因为它重新加载的页面看起来不太好。为此,我想使用 ajax
这将更新/刷新我的页面,而无需每 15 秒后重新加载。
我的目标url
是 http://localhost:17104/Home/MultiGraph
我搜索了很多关于它的文章,发现ajax正在使用他的数据来更新页面。我只想更新/刷新页面而不重新加载
更新的代码:
我用过setInterval
我在其中放置了我的ajax调用,如下所示
setInterval(function () {
$.ajax({
url: '/Home/MultiGraph',
type: "POST",
success: function (result) {
$("#charts").html(result);
alert(result);
}
});
//chart1.redraw();
//alert("hello");
}, 8000);
在我的警报中,它向我显示了一些可怕的数据
按 ok
后我得到以下结果
也在ajax调用charts
是我的div
我的图表放置在其中
<div id="charts">
<div id="container1" style="height: 400px; width:auto"></div>
<div id="container2" style="height: 400px; width:auto"></div>
<div id="container3" style="height: 400px; width:auto"></div>
<div id="container4" style="height: 400px; width:auto"></div>
</div>
任何帮助将不胜感激
最佳答案
问题:您正在随 View 一起拉动布局。
解决方案:您需要每次从 Ajax 调用请求时返回部分 View ,否则整个 HTML 以及您的布局页面将由服务器传递.
要检查请求是否是从 Ajax 发出的,您可以执行以下操作。这只是一个伪代码。
if (Request.IsAjaxRequest())
{
return PartialView(); //you can pass in some data into view as PartialView(myModel)
}
return View();
因此,您可以拥有相同的 ActionResult 和其中的所有其他逻辑,只需在末尾添加此 if
检查即可在完整 View 和部分 View 之间切换。
另请注意:确保您的 View 没有布局设置代码。
即:如下所示。
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
如果你有这个并尝试执行return PartialView();
它将不起作用,它仍然会返回布局。因此,请确保删除布局设置代码行。
之后,当您实际执行 return View();
时,将使用默认布局,并且当您使用 return PartialView 时,将返回具有布局的 View ();
。
您的默认 View 是哪个?如果您查看 Views 文件夹中的文件 _ViewStart.cshtml
,您可以获得该信息。
关于javascript - Asp.net MVC使用ajax更新网页15秒后无需重新加载页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40395003/