簡體   English   中英

在 Razor 頁面中傳遞參數每秒渲染局部視圖

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM