【问题标题】:Blazor application passing variables from razor page to c#Blazor 应用程序将变量从 razor 页面传递到 c#
【发布时间】:2021-04-10 12:07:24
【问题描述】:

我还是 Blazor 和 c# 的新手

我正在努力在剃须刀页面中传递一个变量(用户选择的行 ID),并将该变量用作 SQL 查询中的参数,以过滤和填充不同剃须刀页面上的列表/表格。

最初我只是使用一个静态变量,每次用户选择一行时设置它,但是当多个用户与系统交互时,这会导致问题。

处理此问题的最佳方法是什么?我需要使用某种会话变量吗?

【问题讨论】:

标签: c# variables blazor razor-pages


【解决方案1】:

用最简单的形式,你可以这样做:

@page "/Customers/{CustomerId:guid}"
...
...
@code {
   [Parameter]
   public Guid CustomerId { get; set; }
}

但如果你有桌子,你最好检查一下this link

我相信,多亏了这一点,您可以更快、更准确地完成工作。此外,代码将更易于阅读和维护。因为在一天结束时,您将拥有一个适合特定模板的代码,如下所示:

<DataGrid TItem="Employee"
        Data="@employeeList"
        ReadData="@OnReadData"
        TotalItems="@totalEmployees">
    <DataGridCommandColumn TItem="Employee" />
    <DataGridColumn TItem="Employee" Field="@nameof(Employee.Id)" Caption="#" Sortable="false" />
    <DataGridColumn TItem="Employee" Field="@nameof(Employee.FirstName)" Caption="First Name" Editable="true" />
    <DataGridColumn TItem="Employee" Field="@nameof(Employee.LastName)" Caption="Last Name" Editable="true" />
    <DataGridColumn TItem="Employee" Field="@nameof(Employee.EMail)" Caption="EMail" Editable="true" />
    <DataGridColumn TItem="Employee" Field="@nameof(Employee.City)" Caption="City" Editable="true" />
    <DataGridColumn TItem="Employee" Field="@nameof(Employee.Zip)" Caption="Zip" Editable="true" />
    <DataGridNumericColumn TItem="Employee" Field="@nameof(Employee.Childrens)" Caption="Childrens" Editable="true" />
    <DataGridColumn TItem="Employee" Field="@nameof(Employee.Salary)" Caption="Salary" Editable="true">
        <DisplayTemplate>
            @($"{( context as Employee )?.Salary} €")
        </DisplayTemplate>
        <EditTemplate>
            <NumericEdit TValue="decimal" Value="@((decimal)(((CellEditContext)context).CellValue))" ValueChanged="@(v=>((CellEditContext)context).CellValue=v)" />
        </EditTemplate>
    </DataGridColumn>
</DataGrid>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-18
    • 1970-01-01
    • 1970-01-01
    • 2020-04-30
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 2017-10-23
    相关资源
    最近更新 更多