使用 mvc,我有一个控制器,它每次刷新当前页面时都会调用 web 服务来获取数据并填充网格。
是否可以使用 ajax 连续调用此服务,从而从服务中实时获取数据?
这就是我的视图的设置方式:
@model FleetMonitorModel
<div class="span12">
<legend>Fleet Monitor</legend>
<div>
@(Html.Kendo().Grid<FleetMonitorModel>()
.Name("Grid")
.DataSource(ds => ds
.Ajax()
.Read(read => read.Action("Get", "FleetMonitor"))
)
.HtmlAttributes(new { style = "height:auto;" })
.Columns(columns =>
{
columns.Template(p => { }).ClientTemplate(" ").Width(310);
columns.Template(p => { }).ClientTemplate(" ").Width(250);
columns.Template(p => { }).ClientTemplate(" ").Width(150);
columns.Template(p => { }).ClientTemplate(" ");
columns.Template(p => { }).ClientTemplate(" ").Width(80);
})
.ClientRowTemplate(Html.Partial("_ClientRowTemplate", Model).ToHtmlString())
.Pageable()
.Sortable())
</div>
</div>
这是我的控制器操作:
private FleetMonitorModel Model { get; set; }
...
public ActionResult Get([DataSourceRequest] DataSourceRequest request)
{
UnitContract[] listOfUnitsFromService = Client.GetListOfUnits(true);
Model = new FleetMonitorModel()
{
UnitDetails = GenerateUnitDetails(listsOfUnitsFromService.ToList())
};
return Json(Model.UnitDetails.ToDataSourceResult(request));
}