我一直在使用我的ASP.NET应用程序并对其进行了一些重大更改。当我刚开始时,我想知道如何从控制器更新我的视图。感谢引导我的不可思议的人,我能够了解Ajax以及如何通过客户端发送更新数据。我通过点击我创建的刷新按钮来完成此操作。
但是现在我希望在经过一定时间后更新数据(例如3分钟)。我如何设置这样的东西?我是在Ajax.BeginForm函数中设置它还是通过JavaScript完成?我想知道你对此的意见。
我的模特:
using System.Collections.Generic;
namespace Portfolio.Models
{
public class HomeViewModel
{
public List<User> User = new List<User>();
}
}
我的控制器:
using Portfolio.Models;
using System;
using System.Timers;
using System.Web.Mvc;
namespace Portfolio.Controllers
{
public class HomeController : Controller
{
public HomeViewModel model = new HomeViewModel();
Timer Timer = new Timer();
public ActionResult Index()
{
ModelState.Clear();
model.User.Add(new User() { Name = "A", Email = "a@email.com", Date = DateTime.Now.AddHours(-1) });
model.User.Add(new User() { Name = "B", Email = "b@email.com", Date = DateTime.Now.AddHours(-2) });
model.User.Add(new User() { Name = "C", Email = "c@email.com", Date = DateTime.Now.AddHours(-3) });
if (Request.IsAjaxRequest())
{
return PartialView("_FooView", model);
}
}
}
}
我的观点:
@{
ViewBag.Title = "Home Page";
}
@model Portfolio.Models.HomeViewModel
@using (Ajax.BeginForm(
new AjaxOptions
{
HttpMethod = "get",
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "FooView"
}))
{
<button type:"submit" value:"Refresh/>
}
@Html.Partial("_FooView", Model)
我新创建的部分视图:
@model Portfolio.Models.HomeViewModel
<div id="FooView">
@for (int i = 0; i < Model.User.Count; i++)
{
<form>
<div id="Name">@Model.User[i].Name</div>
<div id="Email">@Model.User[i].Email</div>
<div id="Date">@Model.User[i].Date</div>
</form>
<div>---------------------
</div>
}
</div>
答案 0 :(得分:0)
你说使用ajax,所以我猜你在按钮点击时调用了一个JavaScript函数?如果是这样,请尝试setInterval(在这里使用jQuery):
$('document').ready(function() {
setInterval(ThatAjaxFunctionsName, 180000); // 180 seconds - 3 minutes
});
可能需要关于所述功能的更多细节,我假设它只是一些函数ThatAjaxFunctionsName(){}的情况。
答案 1 :(得分:0)
您可以使用setInterval,然后使用JavaScrip
提交表单$('document').ready(function() {
setInterval(submitForm(), 180000);
});
function submitForm() {
$("#YOUR_FORM_ID").submit();
}
使用htmlAttributes
上的Ajax.BeginForm
使用语法new { id = "YOUR_FORM_ID" }