我很难在5秒钟的时间内在MVC5应用程序的索引页中刷新我的桌子。我在这里读了很多有关它的文章,但是我的理解非常基本。
我有一个名为index的ActionResult,它返回一个存储过程以填充下拉列表并在选择一个值并提交该值时,我有另一个称为索引的控制器,但它上面有[HTTPPPOST]下拉列表将其传递给另一个存储的Proc,并将模型返回到创建表的视图中。我想在5秒钟内的时间里刷新这张桌子。我尝试使用以下以下内容首先使用按钮进行刷新。
<tbody id="refresh"> <!--The Id I use for my table -->
<input id="butt" type="submit" value="Go" /> <!--The button to refresh-->
<script>
$("#butt").click(function () {
$.ajax({
url: '/Home/Index',
success: function (data) {
$("#refresh").html(data);
}
})
})
</script>
这是我的控制器:
DBEntities db = new DBEntites();
public ActionResult Index()
{
CircuitClass model = new CircuitClass();
model.MyCircuit = db.GetAllCircuits(DateTime.Today);
return View(model);
}
[HttpPost]
public ActionResult Index(CircuitClass model)
{
string circuit = model.SelectedCircuit.ToString();
int raceNo = model.SelectedRaceNo;
if (model.SelectedRaceNo == 0 || (model.SelectedCircuit == null))
{
return View("~/Views/Shared/Error.cshtml");
}
else
model.MyResults = db.GetCircuitResults(circuit, raceNo, DateTime.Today).ToList();
model.MyCircuit = db.GetAllCircuits(DateTime.Today);
return View(model);
}
在调试中,我按下将我带到没有[HTTPPOST]的索引控制器的按钮,这是我需要刷新表的地方。我期望它将控制器加载给[httppost]。我的方法可能完全是错误的,有人可以帮忙吗?
使用JS使用setInterval
函数每5秒调用display
功能
$("#butt").on('click', display());
function display()
{
$.ajax({
url: '/Home/Index',
success: function (data) {
$("#refresh").html(data);
}
})
}
setInterval(function(){ display(); }, 5000); //Refreshes every 5 sec
(OR(trigger
按钮单击每5秒
$("#butt").click(function () {
$.ajax({
url: '/Home/Index',
success: function (data) {
$("#refresh").html(data);
}
})
})
setInterval(function(){ $("#butt").trigger('click') }, 5000);