我有一个 ASP.NET Core OData Web API,其端点返回以下内容:
{
"@odata.context": "https://localhost:44305/odata/$metadata#OrgUnits",
"@odata.count": 3,
"value": [
{
"Status": "Active",
"OperationMode": "Normal",
"BaseUrl": "https://test.nl/",
"OrgUnitCode": "TEST",
"Name": "Test",
"Address": "Spoorlaan 348",
"PostalCode": "5038 CC",
"City": "Tilburg",
"PhoneNumber": "012 345 6789",
"ChamberOfCommerceNumber": null,
"ContactName": null,
"Website": null,
"EmailAddress": null,
"Id": 1,
"DateCreated": "0001-01-01T00:00:00Z",
"LastModifiedDate": "0001-01-01T00:00:00Z"
},
Run Code Online (Sandbox Code Playgroud)
Status 和 OperationMode 是枚举:
public enum OperationMode
{
Inherited = 0,
Normal = 1,
Test = 2
}
Run Code Online (Sandbox Code Playgroud)
public enum Status
{
Inherited = 0,
Active = 1,
Inactive …Run Code Online (Sandbox Code Playgroud) 我在 Blazor 中有一个组件,它采用参数“TItem”,该参数可以是任何对象:
员工.razor
@page "/Employees"
<GenericGrid TItem="Employee" MaintainState="true"></GenericGrid>
@code
{
}
Run Code Online (Sandbox Code Playgroud)
上面的组件是 Telerik 网格组件的包装器。这样,我可以使用相同的网格组件来显示来自不同对象的数据,具体取决于我传递给它的对象(员工、客户等)
GenericGrid.razor(仅显示相关代码)
@typeparam TItem
...grid layout...
<GridToolBar>
<GridCommandButton Icon="add">New @typeof(TItem).Name</GridCommandButton>
</GridToolBar>
...rest of grid layout...
@code {
...
[Parameter]
public TItem Entity { get; set; }
...
Run Code Online (Sandbox Code Playgroud)
单击按钮时,我想将用户发送到另一个页面。该页面应该包含一个表单,用于创建我传递给它的任何对象。然而,第一个障碍是首先能够将对象发送到另一个页面。路由参数仅支持字符串和整数等内容,因此这不是一个选项。
我发现了以下 StackOverflow 问题:c# blazor how to pass a List to a page。接受的解决方案看起来像是一个可行的选择,但我无法思考如何为我的案例实现这一点。