[英]Render partial view every second passing a parameter in Razor pages
我有一張這樣的表:
@page
@model MyApp.Pages.IndexModel
@using Microsoft.AspNetCore.Antiforgery
@inject IAntiforgery AntiForgery;
@{
ViewData["Title"] = "MyApp";
}
<div class="container-fluid">
<div class="row">
<div class="col-12 text-center p-3">
<table class="table table-striped" id="infoTable">
<tr class="table-secondary">
<th>
<label>Port</label>
</th>
<th>
<label>Name</label>
</th>
<th>
<label>Type</label>
</th>
<th>
<label>Value</label>
</th>
<th>
<label>Last update</label>
</th>
</tr>
@if (Model.Data != null)
{
@if (Model.Data.Count > 0)
{
@foreach (var item in Model.Data)
{
String genID = item.port.ToString();
<tr id="@(genID)">
<td>@item.port</td>
<td>@item.name</td>
<td>@item.varType</td>
@{Html.RenderPartial("_Value", item);}
@{Html.RenderPartial("_LastUpdate", item);}
</tr>
}
}
else
{
<tr>
<td>Model has no data.(Index)</td>
</tr>
}
}
else
{
<tr>
<td>Model is null. (Index)</td>
</tr>
}
</table>
</div>
</div>
</div>
我也有兩個部分觀點:
_值
@model Models.Variable
<td>
@Model.value.ToString().Replace(";", "");
</td>
_上次更新
@model Models.Variable
<td>
@Model.lastUpdate.ToString().Replace(";","");
</td>
我想每秒自動更新每一行的值和最后一次更新。
在我的模型中,我有:
public PartialViewResult OnGetValuePartial(string name)
{
acquireFilterOptions();
Data = Utils.fetchInputs();
Models.Variable d = Data.Where(x => x.name == name).First();
return Partial("_Value", d);
}
public PartialViewResult OnGetLastUpdatePartial(string name)
{
acquireFilterOptions();
Data = Utils.fetchInputs();
Models.Variable d = Data.Where(x => x.name == name).First();
return Partial("_LastUpdate", d);
}
而且我知道我需要每秒在那里的某個地方發送一個 AJAX 調用來獲取更新的值,但我不知道在所述調用中放置的位置或內容以接收 aech 行所需的值。
對此的任何幫助將不勝感激,在此先感謝您所做的一切。
您不應該每秒更新一次,這對服務器來說是無限的工作。 相反,您應該研究 Observable 模式。
僅當您的數據庫中發生某些更改時才更改您的視圖。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.