如何解决使用服务器端线程结果刷新ASP.NET MVC部分视图表
我有一个应用程序,我基本上想在局部视图中显示一个表(ASP.NET MVC)。该表将每隔10秒刷新一次服务器端的数据。服务器端数据使用System.Threading.Timer在单独的线程上运行。代码如下:
部分视图:
@model IEnumerable<AscomTechnicalExercise.Models.Patient>
<table id="patientsTable" class="table">
<tr>
<th>
@Html.ActionLink("Family Name","Index",new { sortOrder = ViewBag.FamilyNameSortParm })
</th>
<th>
@Html.ActionLink("Given Name",new { sortOrder = ViewBag.GivenNameSortParm })
</th>
<th>
@Html.ActionLink("Last Selected Date",new { sortOrder = ViewBag.LastSelectedDateSortParm })
</th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.FamilyName)
</td>
<td>
@Html.DisplayFor(modelItem => item.GivenName)
</td>
<td>
@Html.DisplayFor(modelItem => item.LastSelectedDate)
</td>
</tr>
}
</table>
以下Javascript / JQuery回调一种方法,每隔10秒获取新数据:
$(document).ready(function () {
setInterval(function () {
$("#dvPatientListResults").hide().load('@(Url.Action("GetFullAndPartialViewModel","PatientArea",null,Request.Url.Scheme))').fadeIn('slow');
},10000);
}
其命中方法如下:
public ActionResult GetFullAndPartialViewModel()
{
return PartialView("PatientList",patients);
}
患者在哪里:
private List<Patient> patients = new List<Patient>()
{
new Patient { ID = 0,FamilyName = "Hill",GivenName = "Chris",LastSelectedDate = DateTime.Now },new Patient { ID = 1,FamilyName = "Stephens",GivenName = "Sion",LastSelectedDate = DateTime.Now },new Patient { ID = 2,FamilyName = "Murray",GivenName = "Thomas",new Patient { ID = 3,FamilyName = "Dupre",GivenName = "Pierre",LastSelectedDate = DateTime.Now }
};
此患者列表每十秒钟使用以下内容在一个单独的线程上更新:
Timer timer = new Timer(async (e) =>
{
await Task.Delay(10000);
UpdatePatientsList();
},10000);
UpdatePatientList()仅对列表进行更改。
但是,当倾斜面每隔10秒刷新一次时,似乎并没有从Timer中获取数据更改吗?我是要合并线程回来吗?请帮个忙吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。